0
我試圖在matlab中使用指針。以下代碼在設置xptr.value=4;
後沒有更改x
的值。我不明白爲什麼。如何在matlab中使用指針來更改原始變量?
x=3;
xptr=libpointer('doublePtr',x);
xptr.value=4;
我試圖在matlab中使用指針。以下代碼在設置xptr.value=4;
後沒有更改x
的值。我不明白爲什麼。如何在matlab中使用指針來更改原始變量?
x=3;
xptr=libpointer('doublePtr',x);
xptr.value=4;
它不應該改變的x
價值,因爲x
僅用於初始化的xptr
值。注意從the documentation(重點煤礦)這一行:
p = libpointer(DataType,Value)
創建指針初始化爲副本Value
。
MATLAB不能這樣工作。 MATLAB通過copy-on-write工作,這意味着'x'只會在它自己改變時纔會改變。當你通過指針來做這件事時,它沒有任何作用。也正如gnovice提到的那樣,'x'只用於初始化'xptr'的值。 – rayryeng
Matlab有指針? – Yvon