векторизация для l oop в октаве - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь избавиться от FOR l oop и векторизовать это, если это возможно. Числовые данные в переменной 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

Я использую Octave 4.4, который похож на Matlab.

1 Ответ

3 голосов
/ 25 марта 2020

repmat может использоваться как для data1, так и для итерационной переменной ii следующим образом:

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