Simulink.saveVars

Сохраните переменные рабочей области и их значения в формате кода MATLAB

Синтаксис

Simulink.saveVars(filename)
Simulink.saveVars(filename, VarNames)
Simulink.saveVars(filename, '-regexp', RegExps)
Simulink.saveVars(filename, Specifications, UpdateOption)
Simulink.saveVars(filename, Specifications, Configuration)
Simulink.saveVars(filename, Specifications, MatlabVer)
[r1, r2] = Simulink.saveVars(filename, Specifications)

Примечание

Simulink.saveVars не рекомендуется. Использовать matlab.io.saveVariablesToScript вместо этого.

Описание

Simulink.saveVars(filename) сохраняет все переменные в текущей рабочей области, для которых MATLAB® код может быть сгенерирован в файл MATLAB с именем filename.m. Если код MATLAB не может быть сгенерирован для переменной, переменная сохраняется в сопутствующий MAT-файл с именем filename.mat, и генерируется предупреждение. Если любой файл уже существует, он перезаписывается. The filename не может совпадать с именем какой-либо переменной в текущей рабочей области и может дополнительно включать суффикс .m. Использование Simulink.saveVars не влияет на содержимое какой-либо рабочей области.

Выполнение файла MATLAB восстанавливает переменные, сохраненные в файле, в текущей рабочей области. Если существует сопутствующий MAT-файл, код в файле MATLAB загружает MAT-файл, также восстанавливая его переменные. Когда и файл MATLAB, и MAT-файл существуют, не загружайте файл MATLAB, если файл MAT не доступен или не произойдет ошибка. Не загружайте MAT-файл непосредственно или возникнет неполное восстановление данных. Предупреждение не появляется, если загрузка файла перезаписывает существующие переменные.

Можно отредактировать файл MATLAB, который Simulink.saveVars создает. Можно вставлять комментарии между разделами кода MATLAB или внутри них для сохраненных переменных. Однако, если вы позже используете Simulink.saveVars для обновления или добавления к файлу будут сохранены только комментарии между разделами кода MATLAB. Поэтому внутренние комментарии должны использоваться только в файлах, которые вы не ожидаете изменять дальше.

Вы не должны редактировать раздел заголовка в файле MATLAB, который содержит первые пять строк с комментариями. Simulink® не проверяет синтаксическую правильность отредактированного вручную файла MATLAB. MathWorks рекомендует не редактировать какой-либо код MATLAB в файле. Вы не можете редактировать MAT-файл и никогда не должны пытаться сделать это.

Simulink.saveVars(filename, VarNames) сохраняет только переменные, указанные в VarNames, который является разделенным запятыми списком имен переменных. Можно использовать символ подстановки * чтобы сохранить все переменные, которые совпадают с шаблоном. The * соответствует одному или нескольким символам, включая неалфавитно-цифровые символы.

Simulink.saveVars(filename, '-regexp', RegExps) сохраняет только переменные, имена которых совпадают с одним из регулярных выражений в RegExps, который является разделенным запятыми списком выражений. Для получения дополнительной информации см. раздел Регулярные выражения. Вызов функции может задать оба VarNames и -regexps RegExps, в таком порядке и разделенных запятыми.

Simulink.saveVars(filename, Specifications, UpdateOption) сохраняет переменные, описанные в Specifications (который представляет спецификации переменных в любом из вышеуказанных синтаксисов) в соответствии с указаниями UpdateOption, который может быть любым из следующих:

  • '-create' - Создайте новый файл MATLAB (и MAT-файл при необходимости) по указанию Specifications. Если любой файл уже существует, он перезаписывается. Это поведение по умолчанию.

  • '-update' - Обновление существующего файла MATLAB (и MAT-файла при необходимости), заданное filename путем изменения только переменных, которые совпадают с Specifications и уже существует в любых файлах. Порядок переменных в файлах сохраняется. Комментарии в разделах кода MATLAB не сохраняются.

  • '-append' - Обновление существующего файла MATLAB (и MAT-файла при необходимости), заданное filename около:

    • Обновление переменных, соответствующих Specifications и уже существует в файле или файлах, сохраняя существующий порядок в файле или файлах. Комментарии в разделах кода MATLAB не сохраняются.

    • Добавление переменных, которые совпадают с Specifications и не существуют в файле или файлах путем добавления переменных к файлу или файлам. Эти новые разделы первоначально не имеют никаких замечаний.

Simulink.saveVars(filename, Specifications, Configuration) сохраняет переменные, описанные в Specifications (который представляет спецификации переменных в любом из вышеуказанных синтаксисов) в соответствии с заданным Configuration. The Configuration может содержать любую или все из следующих опций, в любом порядке, разделенных запятыми, если появляется больше одного:

  • '-maxnumel' MaxNum - Ограничивает количество элементов, сохраненных для массива MaxNum, которое должно быть целым числом от 1 до 10000. Для символьного массива верхний предел устанавливается в два раза больше значения, которое вы задаете с MaxNum. Если массив больше MaxNum, весь массив появляется в MAT-файле, а не в ФАЙЛ MATLAB, генерируя предупреждение. По умолчанию: 1000

  • '-maxlevels' MaxLevels ограничивает количество уровней иерархии, сохраненных для структуры или массива ячеек, MaxLevels, которое должно быть целым числом от 1 до 200. Если структура или массив ячеек глубже MaxLevelsвся сущность появляется в MAT-файле, а не в ФАЙЛ MATLAB, генерируя предупреждение. По умолчанию: 20

  • '-textwidth' TextWidth устанавливает ширину переноса текста в файле MATLAB равной TextWidth, которое должно быть целым числом от 32 до 256. По умолчанию: 76

  • '-2dslice' - Устанавливает две размерности для 2-D срезов, которые представляют n-D (где n больше 2) данные char, логики или числового массива. Simulink.saveVars использует первые две размерности n-D массива, чтобы задать размер 2-D среза, если только вы не задаете два положительных целочисленных аргумента после -2dslice опция. Если вы задаете два целочисленных аргумента:

    • Два целых чисел должны быть положительными.

    • Два целых чисел должны быть меньше или равны количеству размерностей n-D массива.

    • Второе целое число должно быть больше первого.

Simulink.saveVars(filename, Specifications, MatlabVer) действует как описано в Specifications (который представляет спецификации после filename в любом из вышеперечисленных синтаксисов) сохранение любого MAT-файла, который он создает, в формате, требуемом версией MATLAB, заданной MatlabVer. Возможные значения:

  • '-v7.3' - 7.3 или выше

  • '-v7.0' - 7.0 или выше

  • '-v6' - Версия 6 или более поздняя

  • '-v4' - Любая версия MATLAB

[r1, r2] = Simulink.saveVars(filename, Specifications) действует как описано в Specifications (который представляет спецификации после filename в любом из вышеперечисленных синтаксисов) и сообщает, какие переменные он сохранил:

  • r1 - массив ячеек из векторов символов. Векторы символов называют все переменные (если таковые имеются), которые были сохранены в файле MATLAB.

  • r2 - массив ячеек из векторов символов. Векторы символов называют все переменные (если таковые имеются), которые были сохранены в MAT-файле.

Входные параметры

filename

Имя файла или имена файлов, которые создает или обновляет функция. The filename не может совпадать с именем любой переменной в текущей рабочей области. The filename может иметь суффикс .m, но функция игнорирует его.

VarNames

Переменная или последовательность переменных, разделенных запятыми. Функция сохраняет только указанные переменные в выход файле. Можно использовать символ подстановки * чтобы сохранить все переменные, которые совпадают с шаблоном. The * соответствует одному или нескольким символам, включая неалфавитно-цифровые символы.

'-regexp', RegExps

После ключевого слова - регулярное выражение или последовательность разделенных запятыми регулярных выражений. Функция сохраняет в выходном файле только те переменные, имена которых совпадают с одним из выражений. Смотрите Регулярные выражения для получения дополнительной информации Вызов функции может задать оба VarNames и -regexps RegExps, в таком порядке и разделенных запятыми.

UpdateOption

Любое из трех ключевых слов, которые управляют действием функции. Возможные значения:

  • '-create' - Создайте новый файл MATLAB (и MAT-файл при необходимости) по указанию Specifications.

  • '-update' - Обновление существующего файла MATLAB (и MAT-файла при необходимости), заданное filename путем изменения только переменных, которые совпадают с Specifications и уже существует в файле или файлах. Порядок переменных в файле или файлах сохраняется.

  • '-append' - Обновление существующего файла MATLAB (и MAT-файла при необходимости), заданное filename около:

    • Обновление переменных, соответствующих Specifications и уже существует в файле или файлах, сохраняя существующий порядок в файле или файлах.

    • Добавление переменных, которые совпадают с Specifications и не существуют в файле или файлах путем добавления переменных, соответствующих Specifications в файл или файлы.

По умолчанию: '-create'

Configuration

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

  • '-maxnumel' MaxNum - Ограничивает количество элементов, сохраненных для массива MaxNum, которое должно быть целым числом от 0 до 10000. Если массив больше этого, весь массив появляется в MAT-файле, а не в файле скрипта MATLAB, генерируя предупреждение. По умолчанию: 1000

  • '-maxlevels' MaxLevels - Ограничивает количество уровней, сохраненных для структуры или массива ячеек MaxLevels, которое должно быть целым числом от 0 до 200. Если структура или массив ячеек глубже, вся сущность появляется в MAT-файле, а не в файле скрипта MATLAB, генерируя предупреждение. По умолчанию: 20

  • '-textwidth' TextWidth - Устанавливает ширину переноса текста в файле скрипта MATLAB равной TextWidth, которое должно быть целым числом от 32 до 256. По умолчанию: 76

  • '-2dslice' - Устанавливает две размерности для 2-D срезов, которые представляют n-D (где n больше 2) массивов char, логических или числовых данных. Использование '-2dslice' опция создает более читаемый сгенерированный код, который согласуется с тем, как MATLAB отображает данные n-D массива.

    Simulink.saveVars использует первые две размерности n-D массива, чтобы задать размер 2-D среза, если только вы не задаете два положительных целочисленных аргумента после -2dslice опция. Если вы задаете два целочисленных аргумента:

    • Два целых чисел должны быть положительными.

    • Два целых чисел должны быть меньше или равны количеству размерностей n-D массива.

    • Второе целое число должно быть больше первого.

Примечание

Можно использовать Настройки MATLAB, чтобы изменить значения по умолчанию для -maxnumel, -maxlevels, '-2dslice', и -textwidth опции строения. На панели Workspace используйте опции в группе Saving variables as MATLAB script files.

MatlabVer

Задает версию MATLAB, синтаксис которой будет использоваться любым MAT-файлом, сохраненным функцией.

  • '-v7.3' - 7.3 или выше

  • '-v7.0' - 7.0 или выше

  • '-v6' - Версия 6 или более поздняя

  • '-v4' - Любая версия MATLAB

По умолчанию: '-v7.3'

Выходные аргументы

r1

Список имен всех переменных (если таковые имеются), сохраненных в файле MATLAB.

r2

Список имен всех переменных (если таковые имеются), сохраненных в MAT-файле.

Примеры

Задайте некоторые переменные базовые рабочие пространства, затем сохраните их все в новый файл MATLAB с именем MyVars.m использование значений по умолчанию для всех входных параметров, кроме filename.

a = 1;
b = 2.5;
c = 'A string';
d = {a, b, c};
Simulink.saveVars('MyVars');

Задайте дополнительные переменные базового рабочего пространства, затем добавьте их к существующему файлу MyVars.m без изменения значений, ранее сохраненных в файле:

K = Simulink.Parameter;
MyType = fixdt (1,16,3);
Simulink.saveVars('MyVars', '-append', 'K', 'MyType');

Обновите переменные V1 и V2 с их значениями в файле MATLAB или для любого, значение которого не может быть преобразовано в код MATLAB, в MAT-файле. Файл должен уже существовать. Любой массив с более чем 10 элементами будет сохранен в MAT-файле, который можно загрузить в любую версию MATLAB. Возвращаемый аргумент r1 приводит имена всех переменных, сохраненных в файле MATLAB; r2 списки всех сохраненных в MAT-файле.

[r1, r2] = Simulink.saveVars('MyFile', 'V1', 'V2', '-update',
'-maxnumel', 10, '-v4');

Задайте 2-D срез для выхода my3Dtable трехмерный массив. Задайте, что срез 2-D расширяется вдоль первых и третьих размерностей:

my3DTable = zeros(3, 4, 2, 'single');
Simulink.saveVars('mfile.m', 'my3DTable', '-2dslice', 1, 3);

Сгенерированный код MATLAB:

my3DTable = zeros(3, 4, 2, 'single');
my3DTable (:,1,:) = single ( ...
  [1 13;
   5 17;
   9 21]);
my3DTable (:,2,:) = single( ...
  [2 14;
   6 18;
   10 22]);
my3DTable (:,3,:) = single( ...
  [3 15;
   7 19;
   11 23]);
my3DTable (:,4,:) = single( ...
  [4 16;
   8 20;
   12 24]);

Ограничения

The Simulink.saveVars функция:

  • Не сохраняет общие ссылки.

  • Игнорирует динамические свойства объектов.

  • Сохраняет следующее в MAT-файле, хотя они могут появиться в ФАЙЛ MATLAB:

Если вы сохраняете много переменных, сгенерированный файл MATLAB может содержать много строк кода и долго выполняться. Чтобы избежать длительного времени выполнения, рассмотрите следующие альтернативы:

Совет

  • Если вам не нужно сохранять переменные в легко понятной форме, см. save функция.

  • Если вам нужно сохранить только объекты шины, используйте Simulink.Bus.save функция.

  • Если необходимо сохранить только конфигурацию модели, используйте Simulink.ConfigSet.saveAs способ.

Введенный в R2010a