在八度音程中矢量化 FOR 循环

vectorize FOR loop in octave

我正在尝试摆脱 FOR 循环并尽可能对其进行矢量化。 变量data1中的数值数据不会是顺序数据/数字而是随机数值数据

ii=0;
data1=[1,2,3]; %test data will be random data this will not be sequential numbers 
array_joined=[];
for ii = 0:2
  ii+1;
  array_joined=[array_joined; data1(:),repmat(ii,[1,length(data1)])(:)]
endfor

结果:

1   0
2   0
3   0
1   1
2   1
3   1
1   2
2   2
3   2

我正在使用类似于 Matlab 的 Octave 4.4。

repmat 可用于 data1 和迭代变量 ii,如下所示:

data1 = [1,2,3];    ii = 0:2;  %inputs
array_joined = [repmat(data1.',numel(ii),1) repmat(ii,numel(data1),1)(:)];