如何在Octave中对数组元素应用除法运算符?
Octave中实现两个计算结果的除法
直接在命令行完成计算的方式:
先把两个值存入变量,再执行除法操作,命令如下:octave --eval 'vals = [352, 475] ./ 1134 .* 100; disp(vals(1) / vals(2))'若需要第二个值除以第一个,将
vals(1) / vals(2)替换为vals(2) / vals(1)即可。关于
divide和feval("/")报错的原因及修正:divide是Octave的矩阵除法函数,要求操作数满足矩阵运算维度要求。如果直接传入包含两个值的数组vals,1x2的数组无法执行矩阵除法,因此报错;但如果传入单个标量值,divide(vals(1), vals(2))是可以正常运行的。- 用
feval调用除法运算符时,需要使用函数句柄形式:
标量除法(矩阵除法):feval("@/", vals(1), vals(2))
元素级除法(数组对应元素相除场景):feval("@./", 数组1, 数组2)
更简洁的嵌套计算写法(重复计算两次,效率略低):
octave --eval '([352, 475] ./ 1134 .* 100)(1) / ([352, 475] ./ 1134 .* 100)(2)'
内容的提问来源于stack exchange,提问作者ceving
相关产品推荐
相关产品推荐

