Create and indexing a matrix simultaneously

Hello,
I'm trying to create an index a matrix in one line. There are a lot of examples I could use, but if I want the second element I would like to write something like:
a=ismember(eye(3),0)(2)
or even just
a=eye(3)(2)
The error I always run in to is this:
??? Error: ()-indexing must appear last in an index expression.
Any help is greatly appreciated!

 採用された回答

Walter Roberson
Walter Roberson 2011 年 10 月 20 日

0 投票

a = subsref(ismember(eye(3),0),struct('type','()','subs',2))

3 件のコメント

Sarah Berurer
Sarah Berurer 2011 年 10 月 20 日
Walter, this is excellent, exactly the kind of thing I'm looking for. I've been playing around with this for a while, but I keep getting the error "??? Error using ==> subsref
The "subs" field for the subscript argument to SUBSREF and SUBSASGN must be a cell or character array." Any ideas how to fix this?
Walter Roberson
Walter Roberson 2011 年 10 月 20 日
Try
a = subsref(ismember(eye(3),0),struct('type',{'()'},'subs',{{2}}))
Sarah Berurer
Sarah Berurer 2011 年 10 月 20 日
Awesome thank you!

サインインしてコメントする。

その他の回答 (3 件)

Jan
Jan 2011 年 10 月 20 日

1 投票

An anchor drifts along
Green and red circling endlessly
A fallen MATLAB feature

4 件のコメント

Jan
Jan 2011 年 10 月 20 日
Daniel & Cyclist: You have been faster! But I have the direct link to Walters suggestion ;-)
Daniel Shub
Daniel Shub 2011 年 10 月 20 日
and now I do too :)
The power of editing.
Jan
Jan 2011 年 10 月 20 日
I have the editor power - I can even *remove* the anchor from your answer again! (Is there an emoticon for a sardonic grinning?)
Jan
Jan 2011 年 10 月 20 日
Nice! I actually wanted to delete this useless answer. But suddenly it became art. The power will be with us.

サインインしてコメントする。

the cyclist
the cyclist 2011 年 10 月 20 日

0 投票

That sort of indexing is not possible. See for example, the accepted answer here:

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by