【问题标题】:Matlab Optimize Matrix MultiplyMatlab 优化矩阵乘法
【发布时间】:2012-10-10 21:37:07
【问题描述】:

这是我当前的 matlab 代码:

a = load('m1.txt');
b = load('m2.txt');
c = a*b;
fid = fopen('Matrix.txt','wt');
for ii = 1:size(c,1)
fprintf(fid,'%g\t',c(ii,:));
fprintf(fid,'\n');
end
fclose(fid)

基本上是读入两个文件,将结果相乘得到相乘后的矩阵,写入文件。

我想知道是否有一种缓存友好的方式来做到这一点。但我认为有时与其他编程语言相反,矩阵在这个领域有些有效。任何提示或示例代码?

【问题讨论】:

  • 您也可以使用 dlmwrite('Matrix1.txt',c,'delimiter', '\t') 并跳过 for 循环。
  • 只是为了澄清已经给出的答案:您的代码中缓慢的部分可能不是矩阵乘法,而是实际写出结果。

标签: matlab optimization matrix


【解决方案1】:

Matlab 矩阵乘法确实非常高效。我不认为你可以做得比现有的更好。

【讨论】:

    【解决方案2】:

    您可以使用save 命令来简化写入磁盘循环。

    save Matrix.txt c -ascii
    

    这将以 ascii 格式将变量“c”写入磁盘。

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多