小编III*_*phr的帖子

matlab 性能不佳

所以我必须在 Matlab 中编写一个程序来手动计算两个函数的卷积。我写了这段简单的代码,我知道它可能没有那么优化:

syms recP(x);
recP(x) = rectangularPulse(-1,1,x);
syms triP(x);
triP(x) = triangularPulse(-1,1,x);
t = -10:0.1:10;
s1 = -10:0.1:10;
for i = 1:201
    s1(i) = 0;
    for j = t
        s1(i) = s1(i) + ( recP(j) * triP(t(i)-j) );
    end
end
plot(t,s1);
Run Code Online (Sandbox Code Playgroud)

我有一个核心 i7-7700HQ 和 32 GB RAM。Matlab 存储在我的 HDD 上,我的 Windows 存储在我的 SSD 上。问题是这个简单的代码至少需要 20 分钟才能运行。我把它放在一个部分中,但我不运行整个代码。Matlab 只占用了我 18% 的 CPU 和 3 GB RAM 来完成这项任务。我认为这可能就足够了,我不知道。但我认为不应该花那么长时间。
我做错了什么吗?我搜索过如何增加Matlab的RAM限制,我发现它没有限制,需要多少就用多少。我不知道是否可以提高它的CPU使用率。
有什么解决方案可以让事情变得更快一点吗?我的作业中大约有 6 或 7 个这样的 for 循环,如果我运行整个实时脚本,则需要很长时间。在此先感谢您的帮助。
(另外,它突出显示了当前正在运行的那段代码。它是for循环,突出显示了外面的代码)

performance matlab

1
推荐指数
1
解决办法
117
查看次数

标签 统计

matlab ×1

performance ×1