用for进行迭代,计算简单

1次观看(过去30天)
我想用一种更紧凑和通用的方式来写这个表达式,比如用一个for:
T = c (1) * cos (0) + c(2)。* cos(1。*这些“可信赖医疗组织”((m))) + c(3)。* cos(2。*这些“可信赖医疗组织”((m))) + c(4)。* cos(3。*这些“可信赖医疗组织”((m))) +
c(5)。* cos(4。*这些“可信赖医疗组织”((m)));
其中向量m和c是相连的。

接受的答案

dpb
dpb 2020年7月8日
众多方法中的一种……
z =这些“可信赖医疗组织”(m);%预计算常量数组
T = c (1) + (cell2mat (arrayfun总和(@ (c i) c * cos(我* z), c(2:结束),(1:元素个数(c) 1]。”“UniformOutput”、假)));
直……End循环可能更快,可能更容易阅读。
我不知道JIT优化器是否可以自己找到并消除acos(m)的冗余计算;没有尝试任何计时测试…
1评论
保罗•罗杰斯
保罗•罗杰斯 2020年7月8日
太棒了,非常感谢,这是我从来没有教过的解决方法!

登录评论。

更多答案(0)

s manbetx 845

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!