Convert Cell Arrays Containing Cell Arrays to separate columns
조회 수: 1 (최근 30일)
이전 댓글 표시
I am trying to import specific number of lines from an output text file. I have used the textscan command to import the required lines. The imported data consists of 1000x1 cells (see the figure below). Any idea how to convert these cells into three separate columns?
% open the file
fid=fopen('dbe-ew-transient analysis - 5% critical damped.f06');
% set linenum to the desired line number that you want to import
linenum = 165164;
% use '%s' if you want to read in the entire line or use '%f' if you want to read only the first numeric value
C = textscan(fid,'%s',1000,'delimiter','\n', 'headerlines',linenum-1);
M = C{:};
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/854485/image.jpeg)
Thanks in advance.
댓글 수: 3
Stephen23
2022년 1월 6일
"I struggled with the file format, i.e., "*.f06", which is not pupular"
The file extension is irrelevant, you just need tell them that it is a text file using the option: "FileType","text":
채택된 답변
DGM
2022년 1월 6일
The comments in the code suggest how to do this. Using the attached test file with some header lines to skip:
fid = fopen('test.txt');
% set linenum to the desired line number that you want to import
linenum = 4;
% use '%s' if you want to read in the entire line or use '%f' if you want to read only the first numeric value
C = textscan(fid,'%f %f %f',1000,'delimiter','\n', 'headerlines',linenum-1);
fclose(fid);
C = cell2mat(C)
댓글 수: 0
추가 답변 (1개)
Chunru
2022년 1월 6일
fn ='dbe-ew-transient analysis - 5% critical damped.f06';
linenum = 165164;
M = readmatrix(fn, 'Range', 165164+":"+999);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!