我已经定义了一个函数foo
在foo.m
。该函数获取索引i
,访问x(i)
数组的值,对其进行x
一些计算,最后返回结果。该数组x
已在file中初始化main.m
。
有什么方法可以在foo
不真正传递数组的情况下在函数中访问数组?
这绝对是不好的做法...但你可以定义x
为global
中main.m
,然后用它foo.m
main.m
function [] = main()
%[
global x;
x = [72 5 8 42];
y = foo(4);
disp(y);
%]
end
foo.m
function [y] = foo(i)
%[
global x;
y = x(i);
%]
end
同样,这是一种不好的做法,我强烈建议您避免这样做,并尽可能选择重构代码。
旁注...我的观点是,总有避免global
变量的解决方案...如果您的问题过于简化,并且您想知道如何将大量参数传递main.m
给子函数,例如foo.m
始终不传递它们,可以将它们放在a中,structure
因此您只需要传递1个参数:
function [] = main()
%[
% Parameters
parameters.x = [7 5 8 42];
parameters.window = "Hamming";
...
% Computations
y = foo(i, parameters);
%]
end
function [y] = foo(i, parameters)
%[
y = parameters.x(i);
%]
end
同样,这一切都取决于您的情况,但是请在使用之前考虑查看您的代码结构 global
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句