matlab中 要输出矩阵的坐标和对应的数据分三列输出,例如 A=[21 42;4 5] 如下 1 1 21 1 2 4
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 12:07:51
matlab中 要输出矩阵的坐标和对应的数据分三列输出,例如 A=[21 42;4 5] 如下 1 1 21 1 2 42 2 1 4 2 2 5
怎么解决
a矩阵输出如下结果,显示在txt中
1 1 21
1 2 42
2 1 4
2 2 5
怎么解决
a矩阵输出如下结果,显示在txt中
1 1 21
1 2 42
2 1 4
2 2 5
有两种方法.
1.将原矩阵相邻三列取出作为新矩阵的行.
a=[1 1 21 1 2 42 2 1 4 2 2 5];%取完前三列再取后三列
k=1;
for i=1:3:12
b(k,:)=a(:,i:i+2);
k=k+1;
end
b
运行结果:
2.将原矩阵每隔两列(每三列)取出作为新矩阵的列.
c=[1 1 21 1 2 42 2 1 4 2 2 5];%取一个数中间隔两个数再取一个数
for i=1:3
d(:,i)=c(:,i:3:12)';
end
d
程序见附件.
再问: 不好意思,我没说清楚,让你理解错了, 我是要将矩阵的数据输出到txt 或者excel中三列的。而且原始矩阵数据量很大
再答: 确实看错了0.0,修改程序如下:A=[21 42;4 5];
[m,n,data]=find(A);
dst=[m,n,data];
dst
save data.txt -ascii dst结果:
生成txt保存内容为: 1.0000000e+000 1.0000000e+000 2.1000000e+001 2.0000000e+000 1.0000000e+000 4.0000000e+000 1.0000000e+000 2.0000000e+000 4.2000000e+001 2.0000000e+000 2.0000000e+000 5.0000000e+000
再问: 我想要的是这样的数据格式,我要一行行的按列撤出输出,比如3x4的矩阵,要输出如下 1 1 数据 1 2 数据 1 3 数据 1 4 数据 2 1 数据 2 2 数据 2 3 数据 2 4 数据 3 1 数据 : : 数据
再答: 我改啊改。A=[21 42;4 5];
[m,n]=size(A);
z=1;
for i=1:m
for k=1:n
B(z,:)=[i k A(i,k)];
z=z+1;
end
end
B
save data.txt -ascii B运行结果:绝对可以了。0.0!
再问: 非常感谢哈,可以输出如下这种的吗 1.0000000e+000 1.0000000e+000 数据 1.0000000e+000 2.0000000e+000 数据 1.0000000e+000 3.0000000e+000 数据 1.0000000e+000 4.0000000e+000 数据
再答: 可以换一种输出方式,输出txt内容均为整数。
A=[21 42;4 5];
[m,n]=size(A);
z=1;
for i=1:m
for k=1:n
B(z,:)=[i k A(i,k)];
z=z+1;
end
end
fid=fopen('data.txt','wt');%wt是以文本方式写入data.txt
[m,n]=size(B);
for i=1:m
for j=1:n
if j==n
fprintf(fid,'%d\n',B(i,j));% %d 整数输出,\n换行
else
fprintf(fid,'%d\t',B(i,j));% \t空格
end
end
end
fclose(fid);%关闭文件这时txt文件内容都是整数表示,调用时使用 f=load('data.txt')即可。如果你想前两列按科学技术法表示,只需将“ fprintf(fid,'%d\t',B(i,j));% \t空格”语句中“%g”改为“%e”即可。
1.将原矩阵相邻三列取出作为新矩阵的行.
a=[1 1 21 1 2 42 2 1 4 2 2 5];%取完前三列再取后三列
k=1;
for i=1:3:12
b(k,:)=a(:,i:i+2);
k=k+1;
end
b
运行结果:
2.将原矩阵每隔两列(每三列)取出作为新矩阵的列.
c=[1 1 21 1 2 42 2 1 4 2 2 5];%取一个数中间隔两个数再取一个数
for i=1:3
d(:,i)=c(:,i:3:12)';
end
d
程序见附件.
再问: 不好意思,我没说清楚,让你理解错了, 我是要将矩阵的数据输出到txt 或者excel中三列的。而且原始矩阵数据量很大
再答: 确实看错了0.0,修改程序如下:A=[21 42;4 5];
[m,n,data]=find(A);
dst=[m,n,data];
dst
save data.txt -ascii dst结果:
生成txt保存内容为: 1.0000000e+000 1.0000000e+000 2.1000000e+001 2.0000000e+000 1.0000000e+000 4.0000000e+000 1.0000000e+000 2.0000000e+000 4.2000000e+001 2.0000000e+000 2.0000000e+000 5.0000000e+000
再问: 我想要的是这样的数据格式,我要一行行的按列撤出输出,比如3x4的矩阵,要输出如下 1 1 数据 1 2 数据 1 3 数据 1 4 数据 2 1 数据 2 2 数据 2 3 数据 2 4 数据 3 1 数据 : : 数据
再答: 我改啊改。A=[21 42;4 5];
[m,n]=size(A);
z=1;
for i=1:m
for k=1:n
B(z,:)=[i k A(i,k)];
z=z+1;
end
end
B
save data.txt -ascii B运行结果:绝对可以了。0.0!
再问: 非常感谢哈,可以输出如下这种的吗 1.0000000e+000 1.0000000e+000 数据 1.0000000e+000 2.0000000e+000 数据 1.0000000e+000 3.0000000e+000 数据 1.0000000e+000 4.0000000e+000 数据
再答: 可以换一种输出方式,输出txt内容均为整数。
A=[21 42;4 5];
[m,n]=size(A);
z=1;
for i=1:m
for k=1:n
B(z,:)=[i k A(i,k)];
z=z+1;
end
end
fid=fopen('data.txt','wt');%wt是以文本方式写入data.txt
[m,n]=size(B);
for i=1:m
for j=1:n
if j==n
fprintf(fid,'%d\n',B(i,j));% %d 整数输出,\n换行
else
fprintf(fid,'%d\t',B(i,j));% \t空格
end
end
end
fclose(fid);%关闭文件这时txt文件内容都是整数表示,调用时使用 f=load('data.txt')即可。如果你想前两列按科学技术法表示,只需将“ fprintf(fid,'%d\t',B(i,j));% \t空格”语句中“%g”改为“%e”即可。
matlab中如何实现一个矩阵的每一列数据对应相加并输出新的矩阵啊.,比如[1,2,3; 2,4,6]
小张利用计算机设计了一个计算程序,输入和输出的数据如下:输入:1 2 3 4 5 输出:
matlab中怎样实现 A矩阵中正数和负数的分别输出,怎样实现A矩阵和B矩阵的交换!急救!1
邓老师设计一个计算程序,输入和输出的数据如下表入数据 1 2 3 4 5 6 … 输出数据 1 2 2 7 3 14 4
matlab中画出的三维图形,如何输出最大值以及对应的x,y坐标值等.例如下图
用Matlab编写一个文件,要求输入矩阵a=[1 2 3;4 5 6],输出平均数,标准差,秩
小明设计了一个计算程序,输入和输出的数据如下:输入:.1 2 3 4 5.
C++ 矩阵乘法 设矩阵int a[4][3],矩阵int b[3][5].矩阵的数据由用户输入.输出新的矩阵c=a*b
北大绿卡p20页的王明利用计算机设计了一个计算程序,输入和输出的数据如下:输入 1 2 3 4 5 输出 1/2 2/5
小方利用计算机设计了一个计算程序,输入和输出的数据如下表:输入 … 1 2 3 4 5 … 输出 … … 那么,当
用matlab怎样输出如下矩阵:1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18
输入一个数,将该数的每位数字输出,再输出该数的反序数.例如,输入1234,输出1、2、3、4,再输出4321