2017-06-19 42 views
0

我試圖在matlab中使用指針。以下代碼在設置xptr.value=4;後沒有更改x的值。我不明白爲什麼。如何在matlab中使用指針來更改原始變量?

x=3; 
xptr=libpointer('doublePtr',x); 
xptr.value=4; 
+0

MATLAB不能這樣工作。 MATLAB通過copy-on-write工作,這意味着'x'只會在它自己改變時纔會改變。當你通過指針來做這件事時,它沒有任何作用。也正如gnovice提到的那樣,'x'只用於初始化'xptr'的值。 – rayryeng

+0

Matlab有指針? – Yvon

回答

1

它不應該改變的x價值,因爲x僅用於初始化的xptr值。注意從the documentation(重點煤礦)這一行:

p = libpointer(DataType,Value)創建指針初始化爲副本Value