我想计算一个时间向量(testime),所以我应用了以下等式
要整合到矢量cp(t)
并进行计算,但我会看到错误
"在赋值A(I)= B中,B和I中的元素数必须为 同样的#34;。
integraletest中的错误(第12行) testime(i)= 1 / vs(i)+ trapz(pas,vs(i))。"
我应该提到:
vs
是一个包含27个值的向量。(vs est le cp dans la formule)
load ('vleurcpetcm ','vs','k')
pas= [0,5,15,25,35,45,55,65,75,85,95,105,115,135,165,...
195,225,255,285,375,525,675,825,975,1125,1350,1650];
for i=1:27
testime(i)= 1/vs(i) +trapz(pas,vs(i))
end
答案 0 :(得分:0)
注意如何使用trapz功能并仔细阅读其手册:http://uk.mathworks.com/help/matlab/ref/trapz.html
您得到的错误表明,结果的长度(右侧)在迭代中发生变化,但左侧应保持不变(testime(i)中的元素数量)。这是因为您没有正确使用trapz函数。
如果您希望在特定间隔内进行整合,则应指定要整合的网格,而不是最终点(当您尝试通过提供单个元素作为限制“sr(i)”时,将对其进行处理通过trapz函数作为维度。
您应该做的是以下内容:
在区间[0 i] = trapz(0:(i-1),pas(1:i))
上集成函数“pas”假设,间隔的间距是单位长度。如果没有,请相应地定义间距向量(而不是0:(i-1))。