急问!!!请高手帮忙,请大家帮助解答!
我在matlab中计算了很长的一个元胞数组,但在matlab主界面中双击该计算出的数据后,显示如下:
<1*17 cell>
<1*18 cell>
.........
由于行数很多,不可能逐个打开显示看,而是想拷贝到excel中进行再分析,可是拷贝过去,和在matlab中显示的一样,也是<1*17 cell>的样子。
该怎么让matlab能在variable editor显示完成的cell数组呢?显示成如下的样子即可:
1 2 [3,4 5] [3,2] [] 3
.........
谢谢
一、若采用你的方法,Matlab的元胞数组是以字符的形式复制,而且数组较大时,不会显示具体内容,如下图所示;
二、最终的目的是写入到Excel表中,可以通过xlswrite函数实现该功能,以下是示例代码:
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% 将元胞数组写入到Excel表中:假设元胞都是数组或空数组
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% 1/举例子数据
a=cell(4,1);
a{1,1}=rand(2,1);
a{2,1}=3*rand(2,2);
a{3,1}=3*rand(3,2);
a{4,1}=3*rand(3,4);
%%%% 2/使用函数直接写入到Excel表中
[NumRow,NumCol]=size(a);
StartRow=1;
for i1=1:NumRow
for i2=1:NumCol
RowStr=int2str(StartRow);
MyStr=sprintf('这是第%d行,第%d列的元胞数据',i1,i2);
%%%% 标签
xlswrite('c:\test.xlsx',{MyStr},1,['A',RowStr]);
%%%% 具体数组
xlswrite('c:\test.xlsx',a{i1,i2},1,['B',RowStr]);
StartRow=StartRow+size(a{i1,i2},1)+1;
end
end