Error: Subscripted assignment dimension mismatch
1 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a 48x64 matrix, let's call it dummy, and I have located all of the non-zero values in dummy(:).
returned as num:
num=find(dummy);
num=
783
863
864
900
901
902
1145
1146
1183
1184
1221
1222
1759
1760
1761
1797
1798
1799
1836
1915
1916
1917
1953
1954
1955
then I want to find the actual value contained at these positions in dummy(:)
values=zeros(size(num));
for i=1:length(num)
values(i,1)=dummy(num(i));
end
values=sort(values);
values=
3.0351
3.1727
3.3852
3.4728
3.4728
3.4728
3.6539
3.6539
3.8040
4.3020
4.6747
4.9834
5.1444
5.2296
5.2495
5.2708
5.2708
5.3560
5.4412
5.6222
5.7286
5.7499
5.7499
5.7499
6.1225
I now need to find the values in the original 48x64 dummy matrix which are equal to these values.
Right now, I am using:
points=zeros(length(num),2);
for i=1:length(values)
[points(i,1),points(i,2)]=find(z(:,:,pos)==values(i));
end
HOWEVER, occasionally there are repeated values, and therefore more than one [x,y] coordinate found
When this occurs, I get the error "Subscripted assignment dimension mismatch."
I have been struggling with this for some time, as it appears I cannot do:
x=find(z(:,:,pos)==values(i));
[points(i,1),points(i,2)]=X(1,1);
This error is " Indexing cannot yield multiple results."
As well, this is not ideal because I would like to have the coordinates from all values; if the above were to work it would only give me the coordinates for the first of the repeated values.
Any input is greatly appreciate, thank you in advance for your replies!
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!