将每个元素彼此除以创建矩阵MATLAB

use*_*609 1 matlab

如果我有一个数字向量 A = 1 2 3

是否可以用创建矩阵

A = [ 1/1 1/2 1/3;
      1/2 2/2 2/3;
      1/3 2/3 3/3;]

I naively tried 

%%
a = 1:3;

aa = a./a(:); %This is what I naively tried

A = [ 1/1 1/2 1/3;
      1/2 2/2 2/3;
      1/3 2/3 3/3;]
Run Code Online (Sandbox Code Playgroud)

我只是天真地尝试过

Lui*_*ndo 5

你只需要

A = min(aa,aa.');
Run Code Online (Sandbox Code Playgroud)

其中aa被计算为你的问题。


通常是出于娱乐目的,您还pdist可以为此滥用(统计工具箱):

A = exp(-squareform(pdist(log(a(:)))));
Run Code Online (Sandbox Code Playgroud)

其中,a = 1:3作为你的问题。

  • 100k,恭喜;) (2认同)