微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何制作一个二维矩阵w/o for?

如何解决如何制作一个二维矩阵w/o for?

我现在正在对二维图的矩阵进行编码。 虽然是这么简单的等式,但是执行起来却需要很多时间。我认为它可以变得更快。 特别是,我认为可以简化“for - 命令术语”。 我该如何简化?

q=1:1:30
x(q)=330+q*0.3
F=1:30:8970
T=x(1)-0.3:0.001:x(30)+0.3
n=size(T,2)
k=1:1:n
for a=1:1:30
I(a,k)=F(a)*exp(-2.*(T(:,k)))
end
happy=sum(I)
plot(k,I)

解决方法

我会说时间是用来打印结果的。尽量在每行末尾使用 ;,它会加快计算。

您还可以通过以下逐个元素计算来替换 for 循环:

a = (1:1:30).';
aux = repmat(exp(-2.*(T(:,k))),length(a),1);
a = repmat(a,1,length(k));
I = a.'.*aux.';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。