# Indexed Assignment on the Right Side

2 visualizzazioni (ultimi 30 giorni)
Sinan Islam il 17 Nov 2020
Commentato: Sinan Islam il 18 Nov 2020
I am calling function f(x) that returns a matrix of 100 columns.
All what I need is just the 10th column. So I need one vector from the whole returned matrix.
I need to get rid of 99 columns and retain only the 10th column.
In Julia, this can be done by:
columnTen = f(x)[:,10]
I am dying to do the same thing in MATLAB.
Not sure why this simple operation seems impossible.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Walter Roberson il 17 Nov 2020
columnTen = struct('fx', rand(7,20)).fx(:,10) %needs R2019b or later IIRC
columnTen = 7×1
0.9090 0.8635 0.0364 0.2788 0.2503 0.1882 0.7757
columnTen = subsref(rand(7,20), substruct('()', {':', 10}))
columnTen = 7×1
0.3391 0.0112 0.5269 0.0961 0.5855 0.0371 0.4590
But if you are permitted an initialization beforehand:
Col = @(M,n) M(:,n); %once
ColumnTen = Col(rand(7,20), 10)
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sinan Islam il 18 Nov 2020
Verbose but working. I hope MATLAB make it as simple as other languages. Thank you!

Accedi per commentare.

### Più risposte (1)

Andrei Bobrov il 17 Nov 2020
Y = f(x);
columnTen = Y(:,10);
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
Sinan Islam il 17 Nov 2020
That is two steps. I need to make the assignment on the fly, in just one line (one operation). I am working with characters. I dont have the option to work on multiple lines (multiple operations). But thanks anyway!

Accedi per commentare.

### Categorie

Scopri di più su Matrix Indexing in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by