## For Loop Moving Through Array

### HoboHarry (view profile)

on 30 Aug 2018
Latest activity Edited by Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 30 Aug 2018
Accepted Answer by Sven

### Sven (view profile)

Trying to write a for loop that moves through an array with 2 columns and 15 rows. The code i've written just provides the same results 15 times for the 1st cells of the array. i'm guessing i need to nest it somehow but i have no idea, a few clues on where i'm wrong would be great
X = Var1;
Y = Var2;
Z = 29;
TableCreate = table(X,Y);
Array = table2array(TableCreate);
for N = 1:length(Array)
A = (Array(1,1)*Z)/Array(1,2);
disp (A)
end

#### 1 Comment

Stephen Cobeldick

### Stephen Cobeldick (view profile)

on 30 Aug 2018
"i'm guessing i need to nest it somehow but i have no idea, a few clues on where i'm wrong would be great"
Inside the loop you need to use indexing into A:
Even better, don't use any loop at all:

### Sven (view profile)

on 30 Aug 2018

The problem is that you are not using the index N.
A = (Array(1,1)*Z)/Array(1,2);
This line doesn't change, so you will get the same output 15 times. A nested loop would look like this:
[row,col] = size(B);
for N = 1:col
for M = 1:row
A = (B(M,N)*Z)/B(1,2);
disp (A)
end
end
The first loop will start at column 1, then the second loop goes through all rows. After that it repeats with column 2 and so on if you have more columns. Depending on how you want to manipulate the entries you have to use both indexes accordingly.

on 30 Aug 2018
Edited by Dennis

### Dennis (view profile)

on 30 Aug 2018

You overwrite A in every iteration and you are calculating the same value over and over again (not using N anywhere).
I am not sure why you create a table and turn it into an array afterwards.
MWE:
x=randi(3,3);
y=rand(3);
array=[x, y];
A=zeros(size(array,2),1);
for N=1:size(array,2)
A(N)=array(1,N)+array(2,N); %use N to access array index, i have no clue what you try to calculate so my example is random
end
disp(A)