使用谷歌,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)
您还可以x通过定义一个函数y并引用它来定义一个隐式句柄:
x = 1;
y = @(x) x;
y(x) % displays 1
x = 10;
y(x) % displays 10
Run Code Online (Sandbox Code Playgroud)