matlab复数矩阵的运算,MATLAB进行大容量复数矩阵(complex double matrix)运算时效率低的解决办法...

本文介绍了在处理大容量复数矩阵(complex double matrix)时,MATLAB运算效率低的解决方案。通过将复数矩阵拆分为实部和虚部存储在两个dat文件中,然后在运行时重新组合,显著提高了运算速度。此外,还提供了一个名为Des_conv的函数,用于矩阵的快速存储和分块转置。这种方法在处理大复数矩阵时能有效提升效率。
摘要由CSDN通过智能技术生成

今天遇到一个问题,有一个4333*1的**complex double 矩阵**,进行相关运算时候,发现matlab运行出不来结果,于是就开始着手解决这个问题,后来参考很多资料,总结了两种方案,比较得出第二种方案更佳:

首先思路都是先将这个变量矩阵保存为.dat的文件,然后下次用到时候再引用出来。用到语句是:

fid_r=fopen('test_111.dat','w'); %创建文件test_111.dat

fwrite(fid_r,rc_e,precision); %将rc_e变量写入fid_r,即存入变量test_111.dat中

fid_r=fopen('test_111.dat','r');%读数据文件

data_real = fread(fid_r,Nr,precision);%将数据文件test_111.dat写入data_real

1.一开始为了图省事,我把这个complex矩阵存到一个dat文件中,但是后面在for循环中调用时候,又会运行很慢! 这里面在存储dat文件时候,需要调用一个Des_conv函数,下面会说到。

2.另一种思路,把complex数据分成实部,虚部存到两个dat文件中,后面for循环用到时候也是先分别调用出来,再用y=data1+j*data2的形式构建原来complex数据。这样效率大大提高了! 当然在存储时候,也用到了Des_conv函数。

【Des_conv函数】:在size比较大的复数矩阵存储时候,如果直接存储会偶尔出错,并且每运行一次就有一次新结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值