Matlab:链接到变量,而不是变量值

Mik*_*Rev 12 variables matlab

使用谷歌,MATLAB文档非常困难,我花了几个小时,我无法学习如何

x = 1
y = x
x = 10
y

ans = 10
Run Code Online (Sandbox Code Playgroud)

相反的是:

x = 1
y = x
x = 10
y

ans = 1
Run Code Online (Sandbox Code Playgroud)

x的值存储在y中.但我想动态更新y的值等于x.

我用什么操作来做这件事?

Thanks.M

Pur*_*uit 16

Matlab是99%的按值传递环境,这是您刚刚演示的内容.通过引用传递的1%是句柄,处理图形(这里不相关)或处理类,它们非常接近你想要的.

要使用句柄类来执行您描述的操作,请将以下内容放入文件调用中RefValue.

classdef RefValue < handle
    properties
        data = [];
    end
end
Run Code Online (Sandbox Code Playgroud)

这将创建一个"句柄"类,其中包含一个名为"data"的属性.

现在你可以尝试:

x = RefValue;
x.data = 1;
y = x;
x.data = 10;
disp(y.data)   %Displays 10.
Run Code Online (Sandbox Code Playgroud)


bla*_*bla 6

你可以试试以下的东西;

x=10;
y='x'
y

y = 
    x

eval(y)
x =
    10
Run Code Online (Sandbox Code Playgroud)


gev*_*ang 5

您还可以x通过定义一个函数y并引用它来定义一个隐式句柄:

x = 1;
y = @(x) x;
y(x) % displays 1
x = 10;
y(x) % displays 10
Run Code Online (Sandbox Code Playgroud)