How to replace multiple values with the same value in a cell array?

12 views (last 30 days)
I would like to replace multiple values with the same value in a cell array.
% retrieve a vector with logical values
index = contains(oversikt.Jernbanen, '395');
% find the indexes of the index vector where the logical values = 1
index2 = find(index == 1);
% replace all the values. / the error: "Expected one output from a curly brace or dot indexing expression, but there were 12 results."
oversikt.Jernbanen{1,index2} = '0';
  4 Comments

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 3 Sep 2020
Edited: Stephen23 on 3 Sep 2020
The RHS must be a scalar cell.
The LHS must use parentheses, because you are replacing cells (not accessing their contents).
oversikt.Jernbanen(1,index) = {'0'};
Remember:
  • () parentheses refer to the cells themselves
  • {} curly braces refer to the cell contents.
  4 Comments
Stephen23
Stephen23 on 3 Sep 2020
Edited: Stephen23 on 3 Sep 2020
"... {} these are for accessing cell contents"
Correct.
"So parentheses are for replacing ..."
Parenthese are not just "for replacing". Parentheses refer to the elements (i.e. cells) of a cell array. You can use them for many things, e.g. getting a sub-array of a cell array, assigning new cells, etc., exactly like you can use parenthesis indexing with any other array class.
iseinas
iseinas on 3 Sep 2020
I will search it up and read more about it. thank you so much for your time :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!