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 m. Если код MATLAB не может быть сгенерирован для переменной, переменная сохранена в сопутствующий MAT-файл под названием filename.mat, и предупреждение сгенерировано. Если любой файл уже существует, он перезаписывается. filename не может совпадать с именем никакой переменной в текущей рабочей области и может опционально включать суффиксный .m 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, который является списком, разделенным запятыми имен переменных. Можно использовать подстановочный символ *, чтобы сохранить все переменные, которые совпадают с шаблоном. * совпадает с одним или несколькими символами, включая неалфавитно-цифровые символы.

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

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

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

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

  • добавление Обновите существующий файл MATLAB (и MAT-файл в случае необходимости) заданный filename:

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

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

Simulink.saveVars(filename, Specifications, Configuration) сохраняет переменные, описанные Specifications (который представляет переменные спецификации в любом из вышеупомянутых синтаксисов) согласно заданному Configuration. 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' — Наборы две размерности для 2D срезов, которые представляют n-D (где n больше, чем 2), char, логика или данные числового массива. Simulink.saveVars использует первые две размерности n-D массива, чтобы задать размер 2D среза, если вы не предоставляете два положительных целочисленных аргумента после опции -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

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

Varnames

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

'-regexp', RegExps

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

UpdateOption

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

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

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

  • добавление Обновите существующий файл 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' — Наборы две размерности для 2D срезов, которые представляют n-D (где n больше, чем 2), массивы char, логики или числовых данных. Используя '-2dslice' опция производит больше читаемого сгенерированного кода, который сопоставим с тем, как MATLAB отображает n-D данные массива.

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

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

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

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

Примечание

Можно использовать Настройки MATLAB, чтобы изменить значения по умолчанию для -maxnumel, -maxlevels, '-2dslice' и параметров конфигурации -textwidth. В панели Рабочей области используйте опции в переменных Сохранения как группа файлов скрипта MATLAB.

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');

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

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]);

Ограничения

Функция Simulink.saveVars:

  • Не сохраняет совместно использованные ссылки.

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

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

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

Советы

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

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

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

Представленный в R2010a

Была ли эта тема полезной?