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!