У меня есть рабочий FOR l oop ниже, и мне было интересно, есть ли способ избавиться от оператора if / then / else?
c = randi([-10 10],1,4); %create random integers
[rw col]= size(c); %get size of array
num_of_loops=5 %number of loops to iterate
a= zeros(num_of_loops,col); %allocate memory to array
b= zeros(1,(rw*col)); %allocate memory to array
a(1,:)=c; %add c array to 1st row in array
for n=1:num_of_loops
n
if (n==1)
last_num_in_array=c(1,end); %get last number in array
a(2,:)=last_num_in_array+c; %start with the last number from row above in array and add original c array to it
else
last_num_in_array=a(n-1,end); %get last number in array
a(n,:)=last_num_in_array+c; %start with the last number from row above in array and add original c array to it
endif
endfor
b=reshape(a',1,[]);
Вот несколько примеров случайных данных. Обратите внимание, что данные будут случайными.
c=
7 -2 -4 -8
a=
7 -2 -4 -8
-1 -10 -12 -16
-9 -18 -20 -24
-17 -26 -28 -32
-25 -34 -36 -40
b=
7 -2 -4 -8 -1 -10 -12 -16 -9 -18 -20 -24 -17 -26 -28 -32 -25 -34 -36 -40