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!

 Risposta accettata

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

3 Commenti

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

Accedi per commentare.

Più risposte (3)

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

4 Commenti

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

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by