access multidimensional array per row

13 Ansichten (letzte 30 Tage)
Joyce Shin
Joyce Shin am 9 Feb. 2017
Kommentiert: Joyce Shin am 10 Feb. 2017
Hi,
I have 10x1 cell named Results in which includes 672x7 cell in each cell. For 672x7 cell, I want to access row by row. However, it throws an error saying "Index exceeds matrix dimensions." Can you see which line is a problem?
for i1=1:size(Results,1) % 10*1 cell
for i2=1:size(Results{i1,1}) % 672*7 cell
for i3=1:size(tc,2) % 7 methods
min(Results{i1,i2}(i3,:))
end
end
end

Antworten (1)

James Tursa
James Tursa am 9 Feb. 2017
Bearbeitet: James Tursa am 9 Feb. 2017
i2 ranges from 1 to 1st dimension of Results{i1}, which is 672. You can't then turn around and use this as the 2nd index in Results. I.e., Results{i1,i2} can't use i2 in that 2nd index since that dimension only goes up to 1. So you need to rethink and redo that Results{i1,i2}(i3,:) reference. It's going to have to look like Results{i1}{i2,something}etc.
Also, your for loops have size(something) as an upper limit, but size returns a vector. Do you really want to use numel(something) or size(something,1) instead?
  2 Kommentare
Joyce Shin
Joyce Shin am 10 Feb. 2017
Hi, Thanks for the comment. If I modify my code this way, it works. I removed i3, since I already know the range.
Results{i1}(i2,1:7)
Joyce Shin
Joyce Shin am 10 Feb. 2017
And can you suggest any other way other than size() to get array size?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by