How to import array of different size in structure
조회 수: 5 (최근 30일)
이전 댓글 표시
Hi,
I have a a few text files such as text1.txt, text2.txt, text3.txt...
Inside each of these text files is a table matrix looks like this:
tex1.txt:
time CCB CCC
0.0 -1 0
0.1 -2 7
0.2 -3 8
0.3 -4 9
0.4 -5 6
text2.txt:
time CCB CCC
0.0 -9 3
0.1 -8 3
0.2 -7 3
0.3 -1 2
text3.txt:
time CCB CCC
0.0 -8 2
0.1 -8 0
0.2 -66 1
Notice that each textfile has the same number of column however different row. In other word, they are of different size.
I start with,
newData=importdata(fileToRead,DELIMITER,HEADERLINES);
%(I have already take care of looping and headerlines count, so dont worry about it. The actual file has differnet number of headerlines too)
And then:
colheaders=genvarname(newData.colheaders)
for a=1:3
for i=length(colheaders)
dataByColumn(a).(colheaders{i})=newData.data(:,i);
end
vars=fieldnames(dataByColumn(a));
for i=1:length(vars)
assignin('base',vars{i}(a),dataByColumn(a).(vars{i}));
end
end
(*Notice at the assignin line, assignin doesn't seem like accepting any indexing)
I want my end result to look like this:
time={[5X1] [4X1] [3X1]}
and the rest as well. So that I can extract individual column by:
time{1}
time{2}
time{3}
Is there any possible to do this?Please advise.
댓글 수: 0
답변 (1개)
Azzi Abdelmalek
2013년 7월 2일
for k=1:3
a=importdata(sprintf('text%d.txt',k),' ',1);
v=a.data
time{k}=v(:,1)
end
댓글 수: 3
Azzi Abdelmalek
2013년 7월 2일
편집: Azzi Abdelmalek
2013년 7월 2일
%Example
YourFolder='E:\matlab'
f=dir([YourFolder '\*.txt'])
for k=1:numel(f)
a=importdata(f(k).name,' ',1);
v=a.data;
time{k}=v(:,1);
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!