Matlab:在函数里使用“全局变量”

# matlab

Matlab:在函数里使用“全局变量”

函数里的变量自在函数内有效, 那么如何在函数内调用外部的变量呢?

  1. 全局变量 global
    global可以定义全局变量, 但要注意先定义, 再赋值. 否则会有警告:

Warning: The value of local variables may have been changed to match the globals. Future versions of MATLAB will require that you declare a variable to be global before you use that variable.

并且需要在你写的函数里面声明使用全局变量。

1
2
3
4
5
6
7
8
9
10
11
12
global x
x=5;

subfunc % 输出为5

function output=subfunc
global x % 在使用全局变量时, 要先声明
output=x;
end

clear global x % 清除全局变量

  1. 使用子函数

子函数默认可以调用其母函数中所有的变量

1
2
3
4
5
6
7
8
9
function main
x=5;
subfunc

function output=subfunc

output=x;
end
end

执行 main, 输出5. 子函数共享父函数的变量


Reference

Matlab之在函数里使用外部变量:全局变量和嵌套函数_matlab function 模块如何引用外部变量_Regnaiq的博客-CSDN博客