How to create a vector by indexing elements within each cell of a 1xN cell array

7 views (last 30 days)
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

Accepted Answer

Stephen23
Stephen23 on 14 May 2021
Edited: Stephen23 on 14 May 2021
Where C is your cell array:
a = ..;
b = ..;
F = @(m)m(a,b);
V = cellfun(F,C)
  9 Comments
Stephen23
Stephen23 on 17 May 2021
Sorry, the code I posted earlier was not correct. Please show the output of this:
for k = 1:numel(raw_array)
size(raw_array{k})
end

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!