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!

 Réponse acceptée

Walter Roberson
Walter Roberson le 20 Oct 2011
a = subsref(ismember(eye(3),0),struct('type','()','subs',2))

3 commentaires

Sarah Berurer
Sarah Berurer le 20 Oct 2011
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 le 20 Oct 2011
Try
a = subsref(ismember(eye(3),0),struct('type',{'()'},'subs',{{2}}))
Sarah Berurer
Sarah Berurer le 20 Oct 2011
Awesome thank you!

Connectez-vous pour commenter.

Plus de réponses (3)

Jan
Jan le 20 Oct 2011
An anchor drifts along
Green and red circling endlessly
A fallen MATLAB feature

4 commentaires

Jan
Jan le 20 Oct 2011
Daniel & Cyclist: You have been faster! But I have the direct link to Walters suggestion ;-)
Daniel Shub
Daniel Shub le 20 Oct 2011
and now I do too :)
The power of editing.
Jan
Jan le 20 Oct 2011
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 le 20 Oct 2011
Nice! I actually wanted to delete this useless answer. But suddenly it became art. The power will be with us.

Connectez-vous pour commenter.

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by