reshape a cell array to be row major
이전 댓글 표시
If I load data with textscan() I'll get back a cell array holding the columns of data. For example
fh = fopen('log.txt');
x = textscan(fh, '%s %f');
fclose(fh);
and a file log.txt containing
xyz 1.73
uvw 3.66
srt 4.73
klm 1.14
then x will be populated as
>> x
1×2 cell array
{4×1 cell} {4×1 double}
and x{2}, for example, returns the four values in column 2.
What I want instead is for x{2} to give me the contents of the 2nd row, not the 2nd column. At the moment I'm using a double loop to create a new cell array, y, containing the data row-major:
n_rows = length(x{1});
n_cols = length(x);
y = cell(n_rows,1);
for r = 1:n_rows
for c = 1:n_cols
y{r}{c} = x{c}(r);
end
end
Is there a cleaner (shorter, more elegant) solution?
채택된 답변
추가 답변 (1개)
Al Danial
2022년 5월 30일
카테고리
도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!