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.

回答 (2 件)

Sean de Wolski
Sean de Wolski 2012 年 12 月 6 日

2 投票

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 件のコメント

Walter Roberson
Walter Roberson 2012 年 12 月 6 日
Yes. It is a useful part of MATLAB.
Jan
Jan 2012 年 12 月 7 日
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
Pritesh Shah 2012 年 12 月 7 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2012 年 12 月 6 日

Community Treasure Hunt

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

Start Hunting!

Translated by