【问题标题】:What is wrong with this MATLAB code? Vectorizing a For-loop这个 MATLAB 代码有什么问题?向量化 For 循环
【发布时间】:2015-08-23 20:50:26
【问题描述】:

我想计算1/((1^2)(3^2))+ 1/((3^2)(5^2))+1/((5^2)(7^2))+ ...的总和

以下代码是我在不循环的情况下计算总和的尝试:

n = 1000;
t0 = clock;    %vectorizing we get 
x1 = (1./(1:2:n)).^2;
y1 = (1/(3:2:n)).^2y1.*x1;
t = sum(y1.*x1)etime(clock,t0)

但 MATLAB 给出向量大小不一致的错误。

如何解决此问题以获得正确答案?

【问题讨论】:

  • 我看到有人已经为特定情况提供了答案,但是鉴于错误消息,我建议您检查所有向量的大小,看看哪个不是您所期望的。跨度>
  • @DennisJaheruddin 谢谢 ;)

标签: matlab for-loop vector indexing


【解决方案1】:
y1=(1/(3:2:n)).^2y1.*x1;

应该是:

y1=(1/(3:2:n+2)).^2;

【讨论】:

  • 非常感谢,我是新来的 :),让我检查一下 ;)
  • 没问题,如果成功,请选择我的答案,以便其他人可以从中受益!
  • 任何时候,这就是网站的用途!
猜你喜欢
  • 2014-05-16
  • 1970-01-01
  • 2012-10-24
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
相关资源
最近更新 更多