Using an empty matrix as an Index
Ältere Kommentare anzeigen
I can't find any documentation about this so I don't understand why matlab doesn't consider using an empty matrix as an index an error worthy event.
x = [3,4];
y = find(x = 0); % returns an empty matrix
i(y) = 0; % returns i = []
Is there a reason for this? It took me quite a while to realize this was causing problems in my program and when I did discover the behavior, I had a momentary thought that I was using perl instead of matlab.
Antworten (2)
Sean de Wolski
am 6 Dez. 2012
What do you expect it to return? If it's not being indexed by anything then it shouldn't extract anything. Perhaps this will look slightly better:
X = magic(5)
X(2:1,:)
2 Kommentare
Walter Roberson
am 6 Dez. 2012
Yes. It is a useful part of MATLAB.
Jan
am 7 Dez. 2012
Exactly. The posted code does this:
Create a variable "i", which have all elements of the index vector set to 0. If the index vector is empty, "i" must be empty also.
Pritesh Shah
am 7 Dez. 2012
0 Stimmen
x = [3,4]; y = find(x = 0); % returns an empty matrix i(y) = 0; It should be == instead of = y = find(x == 0); % returns an empty matrix
Now, it will work... Enjoy !!
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!