Using an empty matrix as an Index

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.

Réponses (2)

Sean de Wolski
Sean de Wolski le 6 Déc 2012

2 votes

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 commentaires

Walter Roberson
Walter Roberson le 6 Déc 2012
Yes. It is a useful part of MATLAB.
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.

Connectez-vous pour commenter.

Pritesh Shah
Pritesh Shah le 7 Déc 2012

0 votes

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 !!

Catégories

Question posée :

le 6 Déc 2012

Community Treasure Hunt

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

Start Hunting!

Translated by