微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将数组集成到另一个数组上的规范方法是什么

如何解决将数组集成到另一个数组上的规范方法是什么

考虑两个数组:

x = [0 .05 .1 .3 .32 .4 .55 .7 1 1.3 1.4 1.45 1.6 1.8 1.9 2 2.2 2.3 2.6 2.8 2.91 3];
y = x.^2;

我想在 y 上集成 x。到目前为止,我已经发现我可以在 for 循环中使用 trapz() 函数

y1 = zeros(length(x));

for ii = 1:length(x)
    y1(ii) = trapz(x(1:ii),y(1:ii));
end

plot(x,y1,x,y);

但是,我想知道是否有一种规范的方法可以在不使用 for 循环的情况下做到这一点。

P.S.1. 我想 MATLAB/Octave 是矢量化函数,应该有预定义的函数来处理这类事情。

P.S.2.我现在没有 MATLAB 许可证,但答案必须与 MATLAB 和 Octave 兼容。

解决方法

听起来您想要cumtrapz( ) function

y1 = zeros(length(x),1);

y1 = cumtrapz(x,y)
plot(x,y1,x,y);
,

您可以使用 cumsumdiff

y1 = [0 cumsum((y(1:end-1) + diff(y)/2) .* diff(x))];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。