Initialize field values in a structure + create a list of zeros(10,10)

13 visualizaciones (últimos 30 días)
Hi everyone, I want to initialize the same field for several indexes in a structure by some zeros(10,10), and I can't figure out how.
Already took me a while to figure out how to just initialize them to 0:
[test(5:9).field] = deal(0,0,0,0)
Which works but
  • I don't want to initialize by a scalar zero but by a 10x10 zeros matrixes
  • And obviously I don't want to repeat the
zeros(10,10)
as many times as I have indexes to initialize.
All the options I find are some kind of concatenation functions (for example repmat) which will obviously won't do the job.
There must be an easy an elegant way, but I can't seem to find it :/
Thanks in advance!
P.S.: and obviously, I'm not looking for a loop.

Respuesta aceptada

The Gogo
The Gogo el 9 de Feb. de 2021
Editada: The Gogo el 9 de Feb. de 2021
CORRECTION: actually the correct answer is in the comments of this answer. by Stephen Cobeldick.
test2 = cell(4,1);
test2(:) = zeros(10,10);
[test(5:9).field] = deal(test2);
Sorry for disturbing. I hope my struggle might be useful to some other people. If anyone has a shorter way, I'm still interested.
  3 comentarios
Stephen23
Stephen23 el 9 de Feb. de 2021
Simpler without the cell array:
mat = zeros(10,10);
[test(5:9).field] = deal(mat)
test = 1x9 struct array with fields:
field
test(4).field
ans = []
test(5).field
ans = 10×10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The Gogo
The Gogo el 9 de Feb. de 2021
Editada: The Gogo el 9 de Feb. de 2021
Cool, thx! Actually this is the only right answer, mine does something else.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by