matlab按元素计算,matlab – 集成一个不直接按元素运算的函数

早上好/下午好/晚上好,

我正在研究一个涉及四阶张量计算体积积分的Matlab脚本.设H(r,theta,phi)是我想要整合的函数.假设不能通过对r,theta和phi的简单操作来获得H.

我的问题是在Matlab中和我知道的任何其他代码一样:

All input functions must accept arrays and operate elementwise. The function FUN(X,Y,Z)

must accept arrays X, Y, Z of the same size and return an array of corresponding values.

如果我尝试这个简单的功能:

fun = @(X,Y,Z) X.*Y.*Z

完全没有问题,如果我将它集成在[0,1] x [0,1] x [0,1]上,我得到了正确的结果:

integral3(fun,0,1,0,1,0,1)

返回0.125,这是正确的.

问题在于,正如我所说,我不能用向量进行简单的计算来获得H,我不得不这样做或多或少做事:

function [result] = fun(x,y,z)

sz = length(x);

result = zeros(1,sz);

for i=1:sz

result(i) = x(i)*y(i)*z(i);

end

end

这个函数独立工作,返回与我之前介绍的另一个完全相同的结果.但是,当我尝试使用integral3时,我收到此错误:

Error using integral2Calc>integral2t/tensor (line 241)

Integrand output size does not match the input size

但从我的函数定义可以清楚地看出,我特意将其作为输入的大小.

我不明白什么是错的,我不确定我有任何其他解决方案来计算这个函数而不是使用这种语法.

非常感谢您的时间和帮助:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值