how to iterate cell array?

8 次查看(过去 30 天)
Majid
Majid 2023-2-26
评论: Rik 2023-3-4
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!

回答(3 个)

Walter Roberson
Walter Roberson 2023-2-26
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 个评论
Majid
Majid 2023-2-26
@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 2023-2-26
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.

请先登录,再进行评论。


VBBV
VBBV 2023-2-26
编辑:VBBV 2023-2-26
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 个评论
VBBV
VBBV 2023-3-3
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 2023-3-4
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.

请先登录,再进行评论。


Torsten
Torsten 2023-2-26
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 个评论
Rik
Rik 2023-3-3
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 2023-3-3
编辑:Torsten 2023-3-3
You have been working on this problem for months now.
In the meantime, did you spend the 2 hours to pass the MATLAB tutorial ?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by