how to iterate cell array?

16 views (last 30 days)
Majid
Majid on 26 Feb 2023
Commented: Rik on 4 Mar 2023
hello !
i have a cell array N1 (100x1),attached here, i want to do 51 iteration for each element of N1(each matrix).
knowing that N1 was saved and i just load it.
i tried with different method but always the same error
for i = 1:51
i = i+1
for itr = 1:100 %number of iteration is the size of my cell array
N = all_N1{i,itr}; % here is error " Index in position 2 exceeds array bounds. Index must not exceed 1."
%...............code
end
end
any help is appreciated!

Answers (3)

Walter Roberson
Walter Roberson on 26 Feb 2023
You say that N1 is 100 x 1.
You have iter = 1:100 so on the second round, iter will become 2.
You have all_N1{i,iter} but iter has become 2 on the second iteration. But your cell array is 100 x 1 so there is no second column. Not unless you assigned into all_N1{:,2} inside the for i loop.
  2 Comments
Majid
Majid on 26 Feb 2023
@Walter Roberson N1 is already saved , i'm searching for a solution that makes me execute each matrix of N1 for 51 iterations
Walter Roberson
Walter Roberson on 26 Feb 2023
N1 is already saved as 100 x 1. When your for itr becomes 2, you attempt to access all_N1{i,iter} which would be all_N1{i,2} . If N is the same thing as all_N1 then you have a problem.

Sign in to comment.


VBBV
VBBV on 26 Feb 2023
Edited: VBBV on 26 Feb 2023
for i = 1:51
for itr = 1:100 %number of iteration is the size of my cell array
N = all_N1{itr,i}; % switch position of indices.
end
end
As you say, N1 is of size 100x1, you need to switch the position of indices in the inner for loop as above. Also, you don't require to increment the outer for loop index, as this will cause the index to exceed out of bounds i.e. > 51 end
  3 Comments
VBBV
VBBV on 3 Mar 2023
clear all % add this at the beginning of code
M = {rand(100,1)} % some data
M = 1×1 cell array
{100×1 double}
N1 = repmat(M,100,1) %each N1 is 100 x 1
N1 = 100×1 cell array
{100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double}
all_N1 = repmat(N1,1,51) % assuming all N1
all_N1 = 100×51 cell array
{100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double} {100×1 double}
for i = 1:51 %
for itr = 1:100 %number of iteration is the size of my cell array
N = all_N1{itr,i}; %
end
end
N
N = 100×1
0.7226 0.0332 0.8978 0.6621 0.7076 0.5424 0.5816 0.2112 0.2799 0.7556
Its unlikely you would get such error, Can you check whether you cleared all variables in your workspace ?each time you begin to run code, otherwise the workspace variables get populated and exceed the array dimensions,
Rik
Rik on 4 Mar 2023
Why suggest clear all? Using a function would also provide a clean slate.
Note that clear or clearvars should be preferred, as clear all clears much more. It is almost equivalent to restarting Matlab every time you run the code.

Sign in to comment.


Torsten
Torsten on 26 Feb 2023
all_N1 = cell(51,1);
% Generate 100 matrices of size 20x20 and save them in cell array
for i = 1:100
all_N1{i} = rand(20);
end
% Use the matrices in iterations
for i = 1:100
M = all_N1{i};
for iter = 1:51
% do something with the matrix M
end
end
  29 Comments
Rik
Rik on 3 Mar 2023
I'm sorry, I'm out. I can't help you if you refuse to follow my advice for troubleshooting.
I hope fo you someone else will be able to pick up this thread, but I'm out.
If you change your mind you can attach the relevant m files and show your implementation of YourCustomFunction.
Torsten
Torsten on 3 Mar 2023
Edited: Torsten on 3 Mar 2023
You have been working on this problem for months now.
In the meantime, did you spend the 2 hours to pass the MATLAB tutorial ?

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!