当您在MATLAB中使用function
时,您只能在工作空间中输出该函数,并且不会显示可能在该函数体中创建或使用的所有其他变量。我想知道function
是如何工作的?它是否清除了内存中的所有其他变量并只保存输出?
答案 0 :(得分:1)
function
就像一个小而孤立的编程环境。在前端插入输入(例如变量,字符串,名称 - 值对等)。函数完成后,只有输出可用,丢弃所有临时创建的变量。
function [SUM] = MySum(A)
for ii = 1:length(A)-1
SUM(ii) = A(ii)+A(ii+1);
kk(ii) = ii;
end
end
>> A=1:10
>> MySum(A)
此代码只为输入数组A
添加两个连续值。请注意,存储在kk
中的迭代编号不会输出,因此在函数完成后会被丢弃。在MATLAB中kk(ii) = ii;
将加下划线橙色,因为它可能未使用'。
假设您还要保留kk
,只需将其添加到功能输出中:
function [SUM,kk] = MySum(A)
并保持其余部分相同。
如果您有大型变量,您只使用某个点并希望它们在函数运行时不会堵塞您的内存,请使用clear
:
function [SUM] = MySum(A)
for ii = 1:length(A)-1
SUM(ii) = A(ii)+A(ii+1);
kk(ii) = ii;
end
clear kk
end