Subscripted assignment dimension mismatch.

1 次查看(过去 30 天)
Hello all,
I know this is a common error and their seem to be millions of solutions for it however I can't get my code to run. I have read all the example I can find but non seem to help. this is my code:
a1=imread('1V.png'); a2=imread('2V.png'); a3=imread('3V.png'); a(:,:,1)=a1; a(:,:,2)=a2; a(:,:,3)=a3;
for t=1:3; y=a(:,:,t); Isum=sum(y,1); [Imax, Iloc]=max(Isum); I(t)=y(:,Iloc); end
The code runs fine if I place a single value in for t, however when I run it as a loop the subscript dimensions mismatch error pops up. I want the code to give me a matrix containing all of the I values, three columns in this case.

采纳的回答

KL
KL 2017-12-11
编辑:KL 2017-12-11
imread returns a 3D matrix. If you want to read multiple images and store them in one matrix, use a 4D matrix,
for k = 1:3
a(:,:,:,k) = imread([num2str(k) 'V.png']);
%other code
end
  4 个评论
Robbie McDermott
Robbie McDermott 2017-12-11
AH! Using l(:,t) has fixed it! Thank you very very much! that will save me a lot of time!
Thank you so much, very very much appreciated!!
KL
KL 2017-12-11
编辑:KL 2017-12-11
You're very welcome!
Another tip: Always try to preallocate your matrices before loop, this would greatly improve your code's performance. For example,
l = zeros(256,3);

请先登录,再进行评论。

更多回答(0 个)

类别

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

标签

Community Treasure Hunt

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

Start Hunting!

Translated by