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