好的,我是 MATLAB 的新手,我的朋友在作业问题上寻求帮助。我只是通过摆弄文档并猜测和检查得出了一个答案,但我希望有人能告诉我一个更好的方法。
这是设置:给你一张桌子
x y z
x_1 y_1 z_1
x_2 y_2 z_2
x_3 y_3 z_3
x_4 y_4 z_4
我们存储在一个矩阵M
中。我们有一个函数 $f(x,y,z)=x^2+yz^3$,尚未在 MATLAB 中定义,我们要获取列向量
[ f(x_1, y_1, z_1)
f(x_2, y_2, z_2)
f(x_3, y_3, z_3)
f(x_4, y_4, z_4) ]
问题表明它必须在单个表达式中完成。
我想出的解决方案是
arrayfun(@(x,y) x^2+y-z^3, M(:,1), M(:,2), M(:,3))
作为一名程序员(不在 MATLAB 中),我说这个解决方案看起来像垃圾。在 MATLAB 中是否有更好/更被接受的方法来做到这一点?