how to set multiple fields in a struct without using a loop

3 visualizaciones (últimos 30 días)
Hello guys, I have the next problem, I want to make something like this:
A={'A1';'A2';'A3'};
them make B=somefunction(B,A); and obtain this:
B =
A1: []
A2: []
A3: []
Any idea?
  4 comentarios
José-Luis
José-Luis el 6 de Jun. de 2014
B is a struct with fields A1, A2 and A3?

Iniciar sesión para comentar.

Respuesta aceptada

José-Luis
José-Luis el 6 de Jun. de 2014
Editada: José-Luis el 6 de Jun. de 2014
A = {'A1';'A2';'A3'};
your_struct = cell2struct(repmat({[]},3,1),A);
Please accept an answer if it helped you.
  1 comentario
Lisandro Jimenez
Lisandro Jimenez el 6 de Jun. de 2014
It's better:
A = {'A1';'A2';'A3'};
your_struct = cell2struct(repmat({[]},size(A,1),1),A);

Iniciar sesión para comentar.

Más respuestas (1)

Lisandro Jimenez
Lisandro Jimenez el 6 de Jun. de 2014
for i=1:size(A,1)
B.(A{i})=[];
end
But this answer has a loop, and I don't know if there's another way more efficent.

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