Error: Subscripted assignment dimension mismatch
    5 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
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 commentaires
Réponse acceptée
  Fangjun Jiang
      
      
 le 30 Août 2011
        Can you try [I,J,V]=find(dummy). It gives position index and value at once.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Matrix Indexing dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

