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

8 visualizaciones (últimos 30 días)
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 comentarios
Stephen23
Stephen23 el 3 de Sept. de 2020
You don't need index2 at all, just use index.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 3 de Sept. de 2020
Editada: Stephen23 el 3 de Sept. de 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 comentarios
Stephen23
Stephen23 el 3 de Sept. de 2020
Editada: Stephen23 el 3 de Sept. de 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 el 3 de Sept. de 2020
I will search it up and read more about it. thank you so much for your time :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by