Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组中的参数传递给MATLAB函数,并使用FOR循环保存函数结果_Matlab_For Loop - Fatal编程技术网

将数组中的参数传递给MATLAB函数,并使用FOR循环保存函数结果

将数组中的参数传递给MATLAB函数,并使用FOR循环保存函数结果,matlab,for-loop,Matlab,For Loop,我需要运行一个特定的函数4次,每次都向它传递新的参数(获取 并在每次迭代后将结果保存到另一个数组中 以下是我的功能: function VD (x,y,z) (2*x*y*z)/1000 以下是我的带值数组: x = [1,2,3] y = [4,5,6] z = [7,8,9] 这里是我犯错误的地方: for i=1:4 result{i} = VD(x(i),y(i),z(i)); end 错误-下标索引必须是实正整数或逻辑数。 我想要有4个值的数组结果,其中每个值都是VD函数返回的结

我需要运行一个特定的函数4次,每次都向它传递新的参数(获取 并在每次迭代后将结果保存到另一个数组中

以下是我的功能:

function VD (x,y,z)
(2*x*y*z)/1000
以下是我的带值数组:

x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
这里是我犯错误的地方:

for i=1:4
result{i} = VD(x(i),y(i),z(i));
end
错误-下标索引必须是实正整数或逻辑数。

我想要有4个值的数组结果,其中每个值都是VD函数返回的结果

希望一切都清楚


谢谢。

您可以完全避免使用循环:

x = [1,2,3]
y = [4,5,6]
z = [7,8,9]

result = 2 * x .* y .* z ./ 1000;

您的函数没有返回值。它只是将结果打印到屏幕上。将函数定义替换为以下内容

function r = VD(x,y,z)
r = (2*x*y*z)/1000;
也许会有帮助。但是,有更有效的方法来完成这项特定任务-请参阅Gordon关于如何矢量化的回答。

如果没有“.”,则“”将执行矩阵乘法。尝试下面的方法来了解我的意思:A=rand(4);B=兰特(4);AB,A.*B