accessing cell data using brace indexing,

Hi everyone,
I am tring to access the content of multiple cell in a loop. I have used the code:
for k = 1:length(predictors)
usg = predictors{k};
end
But it doesn't work. Instead I'm getting error that reads: Brace indexing not supported for this variable type. Could someone help please?

Answers (3)

You need to check what predictors really is. It is not a cell array, as you believe.
The error is saying it's not a cell array like you think. It's something else, like a double or something. Where did it come from? Did some other function create it? If so, what?
See the FAQ for a good discussion of cell arrays. This should give you a good idea of where and when to use braces, parentheses, and brackets. Granted, it can be confusing. But I think reading the FAQ will help.
Abdul Rof V
Abdul Rof V on 29 Aug 2021
Edited: Abdul Rof V on 29 Aug 2021
PI=ones(10,10);
p0=0;
for i=1:5
p{i}=PI{i}
end
anything wrong in indexing

1 Comment

You cannot use {} indexing with numeric arrays such as PI is assigned. {} indexing is reserved for container datatypes such as cell arrays or tables or strings.
You need () indexing for numeric datatypes.
Note: your PI is 2 dimensional, but you are using a single index for it. That does have meaning and can be valid, but please make sure it is what you want to do.

Sign in to comment.

Asked:

on 27 Jan 2020

Commented:

on 29 Aug 2021

Community Treasure Hunt

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

Start Hunting!