![]() |
无解吗:导入数据后,转化为复矩阵
[B][SIZE="4"]问题描述:[/SIZE][/B]
1. 实数型数据为保存在工作目录下的data.txt,按实部和虚部分隔分成2列数据,示例文件内容为 1.3 -0.2 2.1 11 3.5 2 接下来试图通过m命令文件将数据读入并转化为下面的3x1复数矩阵。 1.3-0.2i 2.1+11i 3.5+2i 2. 尝试用两个矩阵的复数计算合成,m命令文件内容为 clear; data=load('data.txt'); for i=1:3 re(i,1)=data(i,1); im(i,1)=data(i,2); end TransMat=re+i.*re; 结果意外的得到3x1的实数矩阵 3. 再尝试用矩阵元素复数计算后填入新矩阵,其m命令内容为 clear; data=load('data.txt'); for i=1:3 TransMat(i,1)=data(i,1)+i.*data(i,2); end 结果仍然是意外的3x1实数矩阵 2或3的m命令执行后,用whos命令查看矩阵类型,得到的结果均为 TransMax size=3x1 class=double array 我也google过"matlab complex array",但这方面的问题好像没有答案。在这里向大家求教,请帮帮我!谢谢。 |
回复: 无解吗:导入数据后,转化为复矩阵
请大家给我出出主意,顶一下帖子。
:confused: |
回复: 无解吗:导入数据后,转化为复矩阵
找到答案了。
只要将m文件循环体内运算语句中的虚数单位i改写成j即可。看来在这里matlab将i看成循环语句for i=1:8中的数值了。 |
回复: 无解吗:导入数据后,转化为复矩阵
[QUOTE=nissen;31090]找到答案了。
只要将m文件循环体内运算语句中的虚数单位i改写成j即可。看来在这里matlab将i看成循环语句for i=1:8中的数值了。[/QUOTE] 我写的,如下: clear; data=load('data.txt'); for k=1:3 re(k,1)=data(k,1); im(k,1)=data(k,2); end TransMat=re+im*i >> mdata TransMat = 1.3000 - 0.2000i 2.1000 +11.0000i 3.5000 + 2.0000i |
所有时间均为北京时间。现在的时间是 09:45。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.