查看: 205|回复: 2|关注: 0

[已解决] matlab已知矩阵每个元素的表达式 如何最不耗时地生成矩阵?

[复制链接]

新手

17 麦片

财富积分


050


10

主题

41

帖子

0

最佳答案
  • 关注者: 2
各位好!
目前遇到问题,比较常见的,已知一个矩阵每个元素的表达式,要生成这个矩阵。典型的做法肯定是用两个for循环。但是当矩阵很大时,比如又要反复调用很多次,非常耗时,代码效率极低。请问对于这个例子,大家有没有什么好的办法?

for p=1:M
    for q=1:M
        A(p,q)  = 1/M*( 1-exp(j*2*pi*(fd/delta_f-(p-q))) )/(1-exp(j*2*pi/M*(fd/delta_f-(p-q)))) ;
    end
end


微信图片_20190908160512.png

论坛优秀回答者

5

主题

1522

帖子

426

最佳答案
  • 关注者: 123
发表于 2019-9-8 16:20:16 | 显示全部楼层 |此回复为最佳答案
先用meshgrid构造p,q的矩阵,exp函数可直接对矩阵各元素做运算,这样就可以直接用其他常数和p、q两个矩阵分别生成分子和分母,最后点除即可。
提问请:①准确描述问题②贴代码别贴代码的截图③勿一问多帖或一帖多问④及时反馈⑤看清回复的每个字

新手

17 麦片

财富积分


050


10

主题

41

帖子

0

最佳答案
  • 关注者: 2
 楼主| 发表于 2019-9-8 16:27:51 | 显示全部楼层
TouAkira 发表于 2019-9-8 16:20
先用meshgrid构造p,q的矩阵,exp函数可直接对矩阵各元素做运算,这样就可以直接用其他常数和p、q两个矩阵 ...

非常感谢!我试试去~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表