Error_Unable to perform assignment because brace indexing is not supported for variables of this type

1 次查看(过去 30 天)
I am keep getting an error: Unable to perform assignment because brace indexing is not supported for variables of this type.
Can someone please help me out to resolve the error?
for i = 1:size(platemap,1)
S = zeros(size(platemap,1));
G = zeros(size(platemap,1));
[S{i,1},G{i,1}] = cellcyclestages('f',Data{i,1},params,opts);
end
Thank You

采纳的回答

Image Analyst
Image Analyst 2021-8-5
What is Data? Hopefully it's a 2-D cell array. Or at least a 1-D cell array.
What does the cellcyclestages() function return? Two scalars? If so you don't need cell arrays. Vectors whose length may change from one iteration to the next? If so, then you need cell arrays.
See the FAQ for a nice discussion of cell arrays:
Try
numValues = size(platemap,1);
S = cell(1, numValues);
G = cell(1, numValues);
for k = 1 : numValues
[S{k}, G{k}] = cellcyclestages('f', Data{k,1}, params, opts);
end

更多回答(1 个)

Walter Roberson
Walter Roberson 2021-8-5
Repaired code, no loop.
i = size(platemap,1);
[S{i,1}, G{i,1}] = cellcyclestages('f',Data{i,1},params,opts);
You do not need a loop because your existing code overwrites all of S and G every iteration of the loop, so your code only remembers what was done on the last iteration; so you might as well not any other iterations.
The recommended code would have been different if you were not overwriting all of S and G every iteration.

类别

Help CenterFile Exchange 中查找有关 Data Types 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by