structure containing empty string arrays
Afficher commentaires plus anciens
Hi, I'm using a structure to hold some text data. The fields of the structure are initialised as cells. However it seems that if the field is left empty then the value is converted to a double meaning I can't consistently index that value. Do I need to specifically test each value or is there a better way? Thanks
x=struct('a',{},'b',{});
x(1).a={'abc' 'bbc'};
x(1).b={'cbc'};
x(2).a={'dbc'};
for iloc=1:2
sprintf('%s,%s\n',...
x(iloc).a{:},...
x(iloc).b{:})
end
Réponses (2)
Azzi Abdelmalek
le 19 Fév 2013
Modifié(e) : Azzi Abdelmalek
le 19 Fév 2013
You can use
x=struct('a',{''},'b',{''});
Edit
n=10;
v=arrayfun(@(x) {''},1:n,'un',0)
a=struct('a',v,'b',v)
5 commentaires
Tom Wright
le 19 Fév 2013
Azzi Abdelmalek
le 19 Fév 2013
Modifié(e) : Azzi Abdelmalek
le 19 Fév 2013
Then use
x=struct('a',{'','',''},'b',{'','',''});
You did not specify the length.
Azzi Abdelmalek
le 19 Fév 2013
For general case you can use
n=10
v=arrayfun(@(x) '',1:n,'un',0)
a=struct('a',v,'b',v)
Tom Wright
le 19 Fév 2013
Azzi Abdelmalek
le 19 Fév 2013
Modifié(e) : Azzi Abdelmalek
le 19 Fév 2013
Ok, use this, it should work
n=10;
v=arrayfun(@(x) {''},1:n,'un',0)
a=struct('a',v,'b',v)
Sean de Wolski
le 19 Fév 2013
Modifié(e) : Sean de Wolski
le 19 Fév 2013
You should be able to use repmat() to create a cell array of empty strings:
C = repmat({''},10,10)
And then feed this into the struct() constructor.
1 commentaire
Sean de Wolski
le 19 Fév 2013
@Tom, works fine for me:
C = repmat({''},10,10)
S = struct('C',C)
S(10,1).C = 'pi'
Catégories
En savoir plus sur Cell Arrays dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!