Writing first and last line of each cell
1 回表示 (過去 30 日間)
古いコメントを表示
Dear, I have a question about write file.
I have a file xxMM. It is a 19x1 cell.
The first cell has 14x6 double. The second cell has 12x6 double. The third 9x6 double. The fourth 6x6 double and etc.
I would like write a file (double) with only the last line of each cell. Only of first cell (14x6) I would like write the first and of last line of cell. All the others I would like to write only the last line
For example, the file is xx.
I would like that xx be a double and that the first line be the first and the last line and the six columns of first file (cell) of xxMM.
The second line of xx be only the last line and the six columns of second file (cell) of xxMM.
The third line of xx be only the last line and the six columns of third file (cell) of xxMM and etc.
I did it:
xx=zeros(length(xxMM),6);
for i=1:length(xxMM)
a=xxMM{i};
xx(i,:)=a(end,:);
But, the form I just write the last line of each cell. But the first cell I would like of first and the last line.
How can I do it ?
Thank you advanced
0 件のコメント
採用された回答
dpb
2019 年 4 月 7 日
編集済み: dpb
2019 年 4 月 7 日
Just have to handle the special case outside the loop...
xx=zeros(length(xxMM)+1,6);
xx(1,:)=xxMM{1,:}(1,:);
for i=1:length(xxMM)
xx(i+1,:)=xxMM{i}(end,:);
end
or, you could dispense with the explicit for...end loop with cellfun
xx=[xxMM{1}(1,:);cell2mat(cellfun(@(x) x(end,:),xxMM,'uni',0))];
3 件のコメント
dpb
2019 年 4 月 7 日
I did a test here on sample; code worked just fine...post the actual code and error message. Maybe you missed "the curlies" to dereference the cell???
madhan ravi
2019 年 4 月 7 日
編集済み: madhan ravi
2019 年 4 月 7 日
xx(1,:)=xxMM{1,:}(1,:);
% ^^^^^----- was missing at the beginning
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!