matlab中的靜態變數與全域性變數

2022-07-28 05:42:14 字數 711 閱讀 5438

在matlab中,和其他語言一樣,函式中的變數一把都是區域性變數,也就是說,在函式呼叫完畢後,變數就會被釋放。但是有些時候回希望上次改變的變數在下一次呼叫時也能發揮作用。這時候就要永達靜態變數。

關鍵字:

persistent

用例:

function rndnum = rnd(x)

%produce random numbers

persistent x;

if isempty(x)

x=0.5;

enda = 17;

b = 139;

c = 256;

x = mod(a*x+b);

rndnum=x/c;

注意:

上面對x的初始化,我們不能直接用persistent x = 0.5; 而應該要先判斷x是否已經賦值,然後在初始化。

global

用例:

function y = fun1()

global x;

x=133;

y=3*x;

function y = fun2()

global x;

y=3/x;

全域性變數與靜態變數

1.全域性變數 作用域為定義處到檔案末尾,但是在程式開始就占用記憶體了。include include 這樣是可以的 extern int g int k 10 int main int g 10 include include 這樣也是可以的,但是沒必要。int g 10 extern int g...

全域性變數與全域性靜態變數的區別

全域性變數與全域性靜態變數的區別 a 若程式由乙個原始檔構成時,全域性變數與全域性靜態變數沒有區別。b 若程式由多個原始檔構成時,全域性變數與全域性靜態變數不同 全域性靜態變數使得該變數成為定義該變數的原始檔所獨享,即 全域性靜態變數對組成該程式的其它原始檔是無效的。c 具有外部鏈結的靜態 可以在所...

全域性變數與全域性靜態變數的區別

全域性變數與全域性靜態變數的區別 a 若程式由乙個原始檔構成時,全域性變數與全域性靜態變數沒有區別。b 若程式由多個原始檔構成時,全域性變數與全域性靜態變數不同 全域性靜態變數使得該變數成為定義該變數的原始檔所獨享,即 全域性靜態變數對組成該程式的其它原始檔是無效的。c 具有外部鏈結的靜態 可以在所...