66 views (last 30 days)

Show older comments

I have a 1xN cell array (raw_array) and I am trying to create a vector of N values using the same indexing (a,b) within each cell.

I can use this expression to extract a scalar value from a single cell:

raw_array{1,n(x,y)}(a,b)

Here n(x,y) is just a means of indexing the correct cell within the cell array.

Let's say y varies from 1-10, i earlier tried the following:

raw_array{1,n(x,1:10)}(a,b) but clearly this doesn't work (error msg: Expected one output from a curly brace or dot indexing expression, but there were 10 results).

I really want to avoid writing each vector element separately, e.g. [raw_array{1,n(x,1)}(a,b) raw_array{1,n(x,2)}(a,b)...]

Can anybody please give me a hint or suggestion?

Thanks

Stephen Cobeldick
on 14 May 2021

Edited: Stephen Cobeldick
on 14 May 2021

Where C is your cell array:

a = ..;

b = ..;

F = @(m)m(a,b);

V = cellfun(F,C)

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

Start Hunting!