structure containing empty string arrays
이전 댓글 표시
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
답변 (2개)
Azzi Abdelmalek
2013년 2월 19일
편집: Azzi Abdelmalek
2013년 2월 19일
You can use
x=struct('a',{''},'b',{''});
Edit
n=10;
v=arrayfun(@(x) {''},1:n,'un',0)
a=struct('a',v,'b',v)
댓글 수: 5
Tom Wright
2013년 2월 19일
Azzi Abdelmalek
2013년 2월 19일
편집: Azzi Abdelmalek
2013년 2월 19일
Then use
x=struct('a',{'','',''},'b',{'','',''});
You did not specify the length.
Azzi Abdelmalek
2013년 2월 19일
For general case you can use
n=10
v=arrayfun(@(x) '',1:n,'un',0)
a=struct('a',v,'b',v)
Tom Wright
2013년 2월 19일
Azzi Abdelmalek
2013년 2월 19일
편집: Azzi Abdelmalek
2013년 2월 19일
Ok, use this, it should work
n=10;
v=arrayfun(@(x) {''},1:n,'un',0)
a=struct('a',v,'b',v)
Sean de Wolski
2013년 2월 19일
편집: Sean de Wolski
2013년 2월 19일
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
Sean de Wolski
2013년 2월 19일
@Tom, works fine for me:
C = repmat({''},10,10)
S = struct('C',C)
S(10,1).C = 'pi'
카테고리
도움말 센터 및 File Exchange에서 Cell Arrays에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!