Assign multiple fields to a Struct-Array
Ältere Kommentare anzeigen
hi, I'm new to struct Arrays and I've got the following problem:
filelist(:).names = upper(filelist(:).names);
somehow I cannot figure out how to tell matlab to assign each result of the upper function to one entry in the filelist. I'm sure that there's a simple solution but I understand how until now
Thanks!
Antworten (3)
Fangjun Jiang
am 9 Sep. 2011
filelist(1).names='a';
filelist(2).names='b';
a=upper({filelist.names});
[filelist.names]=deal(a{:})
2 Kommentare
Andrei Bobrov
am 9 Sep. 2011
+1
[filelist.names]=a{:}
Fangjun Jiang
am 9 Sep. 2011
Thanks, andrei! deal or no deal!
Andrei Bobrov
am 9 Sep. 2011
for j1 = numel(filelist):-1:1
filelist(j1).names=upper(filelist(j1).names);
end
variant with arrayfun and others
filelist = ...
cell2struct(arrayfun(@(x)upper(x.names),filelist,'un',0),fieldnames(filelist));
Vincent
am 9 Sep. 2011
0 Stimmen
3 Kommentare
Jan
am 9 Sep. 2011
Why do you want to avoid the loop??
Vincent
am 9 Sep. 2011
Fangjun Jiang
am 9 Sep. 2011
So, is my answer above what you are looking for?
Kategorien
Mehr zu Structures finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!