与trapz积分的错误

时间:2015-11-11 09:51:05

标签: matlab integral

我想计算一个时间向量(testime),所以我应用了以下等式

formula

要整合到矢量cp(t)并进行计算,但我会看到错误

  

"在赋值A(I)= B中,B和I中的元素数必须为   同样的#34;。

     

integraletest中的错误(第12行)       testime(i)= 1 / vs(i)+ trapz(pas,vs(i))。"

我应该提到:

  • 所有载体的大小相同(345600);
  • 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
    

1 个答案:

答案 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))。