Изменение имени переменной matlab - программирование
Подтвердить что ты не робот

Изменение имени переменной matlab

Я хочу изменить имя переменной до ее экспорта в глобальную среду, данные очень большие, то есть я не могу скопировать ее в другую переменную и удалить первый.

данные загружаются в определенные переменные и что я тоже не могу их изменить, он используется несколько раз в заданиях фона differnet, поэтому я хочу переименовать его и отправить его переименовать, чтобы задания не смешивались и после для следующей загрузки задания и переименования и т.д.

в основном заключается в том, чтобы делать в окне команд то, что я могу сделать с помощью мыши в рабочей области....

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 2

Единственный способ, который я могу сделать для этого без копии памяти, - это обернуть исходные данные в объект, который является подклассом класса handle.

http://www.mathworks.co.uk/help/techdoc/matlab_oop/brfylzt-1.html

Затем вы можете "скопировать" класс дескриптора, используя обычный синтаксис

 classB=classA

.. но вы делаете только псевдоним для одних и тех же данных (изменения в классе B отражаются в классе A). Это самая близкая вещь в matlab для подобной указателю семантики.

Например, создайте файл с именем myHandle и вставьте следующий текст, чтобы определить класс.,

classdef myHandle < handle

    properties
        data
        moreData
    end

    methods
    end

end

Затем вы можете использовать это как обычную структуру. Из командной строки do..

>> 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. Память освобождается только в том случае, если в ней больше нет обработок (когда число ссылок достигло нуля).