我想在导出到全局环境之前更改一个变量名,该数据非常大,意味着我无法将其复制到另一个变量并删除第一个变量。
数据加载到特定变量中,我也不能更改它,它在不同的后台作业中多次使用,所以我想重命名它并发送重命名后的数据,以便作业不会混淆,然后为下一个作业加载并重新命名等等。
基本上就是在命令窗口中执行与工作区相同的操作,而这是用鼠标完成的...
有人知道如何做吗?
classB=classA
..但实际上你只是为相同的数据创建了一个别名(对classB的更改会反映在classA中)。这是matlab中最接近指针语义的方式。
例如,创建一个名为myHandle
的文件,并粘贴以下文本以定义该类...
classdef myHandle < handle
properties
data
moreData
end
methods
end
end
>> x = myHandle
x =
myHandle handle
Properties:
data: []
moreData: []
Methods, Events, Superclasses
>> x.data = [1 2 3 4];
>> x.moreData = 'efg';
一旦原始对象被填充数据,通过键入 . . 可以创建一个原始数据的别名
>> y = x
x
当y
被修改时,即:>> y.data = [33 44 55 66];
>> disp(x)
x =
myHandle handle
Properties:
data: [33 44 55 66]
moreData: 'f'
Methods, Events, Superclasses
clear x
数据仍然可以在另一个句柄y
中访问,内存只有在没有更多的句柄引用它时(当引用计数达到零时)才会被释放。
clear A
,这样你就不会错误地执行该操作(就像接受的答案和上面的评论所告诉你的那样)。我只是指出给一个新变量赋值并不会复制数据,因为它只是对相同数据的引用。 - Hannes Ovrén