如何保存这个二维数组
我想把循环中一个二维数组保存下来,这个数组每次循环都要更新,该如何实现呢? 例如:
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
end
怎样能保存j分别为1,2,3,4,5时c矩阵的值 A=zeros(2,2,5);
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
A(:,:,j)=c
end
可以满足你的要求,但是不一定是最简单的形式。
建议利用数据的规律去掉循环 这个问题也可以用元胞数组存储,而且更简洁。 单元数组的方式
A=cell(1,5);
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
A{j}=c
end for j=1:5
pp=[];
for i=1:j+1
a=i+1;
b=i*i;
c=;
pp=;
end
pp
end
可以保存j分别为1,2,3,4,5时c矩阵的值
[ 本帖最后由 home96 于 2007-8-1 20:35 编辑 ] 再请问一下,如果这个C矩阵维数比较大,如30*30阶,想把 C以矩阵的格式保存到文件中以便以后利用这个矩阵,可下面的代码不能实现,该怎办呢?
A=zeros(2,2,5);
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
A(:,:,j)=c;
fid_out=fopen(c.dat','w')
fprintf(fid_out,'%4d',A);
fclose(fid_out);
end
回复 #6 shanlihong 的帖子
可以实现的,不管数据是存到cell数组还是矩阵。都可以存成mat格式,我觉得存成mat格式没有txt格式方便(个人看法)。txt数据的存取可以参考eight的精华帖子 查看了eight的精华帖子-----使用文本文件进行数据存取的技巧总结----,学会了如何对已有的txt文件操作
问题是如何将下面在窗口输出的A阵保存为文本文件,若A矩阵维数比较大,如30*30阶,怎样才能保存为30*30的矩阵格式呢
A=zeros(2,2,5);
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
A(:,:,j)=c
end 原帖由 shanlihong 于 2007-8-3 09:38 发表 http://www.chinavib.com/forum/images/common/back.gif
查看了eight的精华帖子
-----使用文本文件进行数据存取的技巧总结----,学会了如何对已有的txt文件操作
问题是如何将下面在窗口输出的A阵保存为文本文件,若A矩阵维数比较大,如30*30阶,怎样才能保存为30* ...
如果保存为 mat 格式,直接用 save 就可以了;txt 格式的话,用 fprintf 试试吧 辛苦 花如月和 eight了:handshake
再问个问题:
若想一行输出20个数,fprinft输出格式
fprintf(fid_out,'%4d。。。%d4',A); 省略号里我得写20个%d吗,查了一些书 都找不到该怎样办
[ 本帖最后由 eight 于 2007-8-3 15:31 编辑 ] help fprintf 书是死的,人是活的:str=['']
for i=1:8
str=
end
str=
还有其他矩阵扩维不用循环的方法,不过这个是最普遍和广义的方式。
[ 本帖最后由 bainhome 于 2007-8-4 22:38 编辑 ] 原帖由 shanlihong 于 2007-8-3 15:21 发表 http://www.chinavib.com/forum/images/common/back.gif
辛苦 花如月和 eight了:handshake
再问个问题:
若想一行输出20个数,fprinft输出格式
fprintf(fid_out,'%4d。。。%d4',A); 省略号里我得写20个%d吗,查了一些书 都找不到该怎样办
bainhome兄说得没错,其实就一个维数扩充命令 repmat 就可以了 原帖由 home96 于 2007-8-1 20:09 发表 http://www.chinavib.com/forum/images/common/back.gif
for j=1:5
pp=[];
for i=1:j+1
a=i+1;
b=i*i;
c=;
pp=;
end
pp
end
可以保存j分别为1,2,3,4,5时c矩阵的值
我运行了下各位的代码,感觉就这个结果对,其他人的运行后没有输出i=1 and j=1时候的值. 原帖由 花如月 于 2007-8-1 17:33 发表 http://www.chinavib.com/forum/images/common/back.gif
单元数组的方式
A=cell(1,5);
for j=1:5
for i=1:j+1
a=i+1;
b=i*i;
c=;
end
A{j}=c
end
我运行后输出莫名奇妙的矩阵,我matlab的版本是7.1:@o
[ 本帖最后由 wondersoul 于 2007-8-8 16:32 编辑 ]
页:
[1]
2