exponenta event banner

R2021b

Новые возможности, исправления ошибок, Вопросы совместимости

Среда

Редактор Селекшн: Выберите и отредактируйте прямоугольную область кода

В Редакторе теперь можно выбрать прямоугольную область в коде (также известный как выбор столбца или блокировать редактирование) путем нажатия клавиши ALT при делании выбора с мышью. В macOS системах используйте ключ Option вместо этого. Выбор и редактирование прямоугольной области кода полезны, если вы хотите скопировать или удалить несколько столбцов данных, или если вы хотите отредактировать несколько линий одновременно.

Например, выберите второй столбец данных в A.

The variable A, defined as matrix with five columns and three rows. The second column of A is selected.

Введите 0 устанавливать все выбранные значения к 0.

The variable A with the second column in the matrix set to all zeros.

Редактор Дисплей: Увеличьте и уменьшите масштаб в Редакторе

Чтобы увеличить масштаб или в Редакторе, перейдите к вкладке View, и в разделе Zoom, нажмите кнопку Zoom In или Zoom Out. Как вы масштабируете, MATLAB® отображает текущую шкалу в нижнем правом углу Редактора. Также можно удержать клавишу Ctrl и переместить колесико прокрутки или нажать Ctrl+Plus и Ctrl+Minus. В macOS системах используйте ключ Command и переместите колесико прокрутки или нажмите Command+Shift+Plus и Command+Shift+Minus.

Чтобы возвратиться к шкале по умолчанию, в разделе Zoom вкладки View, выбирают Reset Zoom. Также можно нажать Ctrl+Alt+0 (Command+Alt+0 на macOS).

Код редактора: Покажите предложения кода и завершения автоматически

Начиная в R2021b, когда вы написали команды в Редакторе, MATLAB автоматически отображает контекстные подсказки для аргументов, значений свойств и альтернативных синтаксисов. В предыдущих релизах MATLAB только завершает имена в Редакторе после нажатия клавиши Tab.

Например, если вы хотите использовать size функция, MATLAB автоматически отображает информацию о синтаксисе, чтобы помочь вам записать команду при печати.

Code suggestion for the size function showing two input arguments, A and dim. The input argument A has the description "input array" underneath it.

MATLAB также автоматически предлагает и завершает имена функций, моделей, объектов MATLAB, файлов, папок, переменных, структур, графических свойств, параметров и опций.

Можно отключить автоматические завершения в Редакторе, и Live Editor при наличии MATLAB предлагают и завершают имена только после того, как вы нажимаете клавишу Tab. Для этого на вкладке View, в разделе Display, нажимают кнопку Automatic Completions прочь. Также можно перейти к вкладке Home, и в разделе Environment, нажать Preferences. Затем выберите Editor/Debugger> Automatic Completions и в разделе Suggestions and completions, выберите Show on tab.

Для получения дополнительной информации смотрите Проверку синтаксиса при печати.

Редактор Дебуггинг: Диагностируйте проблемы в скриптах и функциях с помощью встроенного управления отладкой и стека вызовов функции стиля навигационной цепочки

При отладке кода в Редакторе теперь можно диагностировать проблемы с помощью встроенного управления отладкой. Например, чтобы запуститься к определенной строке кода и затем сделать паузу, нажмитеrun to here кнопку слева от линии.

Script with nine lines of code and the run to here button displayed on line two.

Чтобы продвинуться в файл, нажмитеstep in кнопку непосредственно слева от функции, в которую вы хотите продвинуться. После вступания нажмитеstep out кнопку наверху файла, чтобы запустить остальную часть вызванной функции, оставить вызванную функцию, и затем сделать паузу.

По умолчаниюstep in кнопка только появляется для пользовательских функций и скриптов. Показать кнопку для MathWorks® функции также, на вкладке Home, в разделе Environment, нажимают Preferences. Затем выберите MATLAB> Editor/Debugger, и в разделе Debugging in the Live Editor, очистите опцию Only show Step in button for user-defined functions.

Когда вы продвигаетесь в вызванную функцию или файл, Редактор отображает улучшенный список стилей навигационной цепочки функций MATLAB, выполняемый прежде, чем сделать паузу в текущей линии (также названный стеком вызовов функции). Стек вызовов функции показывают наверху файла и отображает функции в порядке, начиная слева с первого названного скрипта или функции, и заканчиваясь справа текущим скриптом или функцией, в которой приостановлен MATLAB.

Bread-crumb style function call stack showing the two functions called, displayed left to right. The first function is plotRand the second function is mean. The step out button displays to the right of the function call stack.

Для получения дополнительной информации смотрите Отладку Файлы кода MATLAB.

Редактор Рефэкторинг: Автоматически преобразуйте выбранный код в функцию

Повредите большие скрипты или функции в мелкие кусочки путем преобразования выбранного кода в функции в файлах или локальных функциях. С одной или несколькими выбранными строками кода, на вкладке Editor, в разделе Code, нажимают кнопку Refactor, и затем выбирают из доступных параметров. MATLAB создает функцию с выбранным кодом и заменяет оригинальный код на вызов недавно эмпирическая функция.

Код редактора: Автоматически завершите окончания блока, разделители соответствия, и перенесите комментарии при редактировании кода

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

У вас также может быть MATLAB, автоматически завершают окончания блока. Для этого на вкладке Home, в разделе Environment, нажимают Preferences. Выберите Editor/Debugger> Automatic Completions и в разделе Autocoding options, выберите один или несколько опций Autocomplete block endings.

Чтобы отменить автоматическое завершение кода, нажмите Ctrl+Z или кнопку Undo. Отключить автоматические завершения кода, в Editor/Debugger> настройки Automatic Completions, ясный один или несколько опций в разделе Autocoding options.

Разделы редактора: Создайте разделы с улучшенным внешним видом

При запуске в R2021b разделы в Редакторе имеют улучшенный внешний вид. Чтобы создать новый раздел, перейдите к вкладке Editor и в разделе Section, нажмите кнопку Section Break. Новый раздел подсвечен с синей границей, указав, что он выбран.

File open in the Editor showing two sections. The second section has a blue border around it indicating that it is the selected section.

Чтобы максимизировать пробел, доступный для редактирования кода в Редакторе, можно скрыть Запуск к Здесь и Код, Сворачивающий поля. Это минимизирует серую область слева от вашего кода. Чтобы скрыть эти два поля, щелкните правой кнопкой по серой области слева от своего кода и очистите опции Show Code Folding Margin и Show Run to Here Margin.

File open in the Editor showing the reduced gray area to the left of the code

Код редактора: Измените случай текста и кода

Можно изменить случай выделенного текста или кода в Редакторе от всего верхнего регистра до нижнего регистра, или наоборот. Чтобы изменить случай, выберите текст, щелкните правой кнопкой и выберите Change Case. Также можно нажать Ctrl+Shift+A, чтобы изменить случай. Если текст содержит и прописной и строчный текст, MATLAB изменяет случай в весь верхний регистр.

Редактор Букмаркс: Обеспечьте закладки после закрытия файла

Начиная в R2021b, MATLAB обеспечивает все закладки после того, как вы закроете файл в Редакторе. В предыдущих релизах MATLAB не обеспечивает закладки после закрытия файла.

Для получения дополнительной информации смотрите Перейти к Местоположение в Файле.

Live Editor Контролс: Установите значения по умолчанию для ползунков, выпадающих списков, флажков и полей редактирования

Можно установить значения по умолчанию для ползунков, выпадающих списков, флажков и полей редактирования в live скриптах. Чтобы установить значение по умолчанию для управления, щелкните правой кнопкой по управлению и выберите Configure Control. Затем в разделе Defaults задайте значение по умолчанию путем ввода значения или путем выбора переменной рабочей области из списка. Список показывает только действительные переменные для управления. Для выпадающих списков выберите значение по умолчанию из списка элементов.

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

Для получения дополнительной информации смотрите, Добавляют Интерактивные управления к Live Script.

Live Editor Анимэйшнс: Экспортируйте анимации в фильмы или анимированные GIF

Экспортируйте анимации в фильмы или анимированные GIF с помощью новой кнопки Export Animation в средствах управления воспроизведением анимации Live Editor. Кнопка Export Animation не поддерживается для анимаций, сгенерированных movie функция.

Например, этот код анимирует линию, растущую, когда он накапливает 2 000 точек данных в Live Editor. Когда анимация сделана, вопроизведя, управление воспроизведением, включая новую кнопку Export Animation, отображение в рамках окна рисунка.

h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,2000);

for k = 1:length(x)
    y = sin(x(k));
    addpoints(h,x(k),y);
    drawnow
end

Figure window showing line after animation is done playing. Playback controls, including the new Export Animation button, display below the plot.

Для получения дополнительной информации о создании анимаций, смотрите Методы Анимации.

Фигуры Live Editor: Взаимодействуйте с действительными фигурами MATLAB и измените размер их с улучшенными размещениями

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

Live Editor: Улучшенная производительность при сохранении live скриптов или функций

Сохранение live скриптов и live функций в Live Editor быстрее в R2021b, чем в R2021a. Улучшение является самым примечательным, когда вы сохраняете live функции больше чем с 1 000 строк кода и live скрипты меньше чем с 100 строками кода.

Например, на Windows® 10, Intel® Xeon® Центральный процессор E5-1650 система тестирования на 3,60 ГГц, сохраняя live функцию в качестве примера, содержащую 4 000 строк кода, занимает приблизительно 2,05 секунды в R2021b. В R2021a, сохраняя ту же live функцию занимает приблизительно 2,57 секунды.

Инструмент сравнения: Сравните и объедините текстовые файлы с улучшенным удобством пользования, внешним видом и подсветкой синтаксиса

В R2021b инструмент сравнения использует подсветку синтаксиса редактора MATLAB. Текстовые изменения и выбор слияния теперь легче изучить. Изменения подсвечены с сильными цветами. Модифицированные линии подсвечены и отмечены с помощью значков сравнения, или. Слияние линию за линией является прямым, и выбор слияния отмечается с помощью значка содержимого слияния.

Text comparison report.

Вопросы совместимости

Начиная в R2021b, вы больше не можете сохранять отчет сравнения как HTML или задавать, показать ли только различия или целые файлы.

Импорт Настроек от Предыдущих Релизов: MATLAB проверяет на настройки от R2019b или более новый

Во время запуска MATLAB проверяет на папку настроек, которая совпадает с текущим релизом. Если та папка не найдена, проверки MATLAB на папки настроек, возвращающиеся до R2019b. Релизы перед R2021b продолжают проверять максимум на три предыдущих релиза.

Релиз MATLABПредыдущие папки настроек релиза

R2021b

R2021a, R2020b, R2020a, R2019b

R2021a

R2020b, R2020a, R2019b

R2020b

R2020a, R2019b, R2019a

Язык отображения: MATLAB использует настройки языка отображения Windows для выбора настольного языка

MATLAB использует настройки Windows display language на Windows 10, чтобы управлять языком рабочего стола MATLAB. Язык отображения вы выбираете On Windows, изменяет язык по умолчанию, используемый функциями Windows как настройки и файловый менеджер.

До R2021b MATLAB управлял настольным языком с помощью установки локализации Windows, которая управляема в настройках Region.

Для получения информации об установках локализации Windows в MATLAB смотрите Локаль Набора на Платформах Microsoft Windows.

Для получения информации о настройках языка отображения управления обратитесь к своей документации Windows 10.

Функциональность, удаляемая или измененная

Инкрементный инструмент Value и Run Section был демонтирован

Инструмент Increment Value и Run Section, ранее доступный в Редакторе, был демонтирован.

Чтобы постепенно увеличить числовое значение в разделе, используйте средства управления в Live Editor. Например, этот код вычисляет факториал переменной x.

x = 5;
y = factorial(x)
y =
   120
Чтобы в интерактивном режиме изменить значение x, в live скрипте, заменяют значение 5 с числовым ползунком. По умолчанию MATLAB повторно выполняет текущий раздел, когда значение ползунка изменяется.

Code that calculates the factorial of x. The value of x is replaced with a numeric slider with a minimum value of 0, a maximum value of 10, and an actual value of 5.

Для получения дополнительной информации смотрите, Добавляют Интерактивные управления к Live Script.

Язык и программирование

cast Функция: Сопоставимый выход для всех синтаксисов с преобразованием совпадающего типа данных

cast функция теперь возвращает сопоставимый выходной параметр для всех синтаксисов с преобразованием совпадающего типа данных.

Например, начиная в R2021b, обоих b = cast(fi(1),'like',sym(1)) и b = cast(fi(1),'sym') возвратите b = 1 из sym тип данных. В предыдущих релизах, b = cast(fi(1),'like',sym(1)) возвращает b = 1 из sym тип данных, но b = cast(fi(1),'sym') выдает ошибку.

Запустите Код в фоновом режиме: Используйте язык параллельного программирования, чтобы запустить код асинхронно

Можно теперь запустить код в фоновом режиме с помощью backgroundPool. Когда вы запускаете код в фоновом режиме, вы можете:

  • Запустите другой код MATLAB в то же время, что и длительное вычисление

  • Создайте больше быстро реагирующих пользовательских интерфейсов

Используйте фоновый пул со следующим языком параллельного программирования:

Для получения дополнительной информации смотрите Фоновую обработку.

Портативный Параллельный Код: Совместно используйте параллельный код и беспрепятственно запуститесь параллельно

Можно теперь идти параллельно код, даже если у вас нет Parallel Computing Toolbox™. Когда вы запускаете портативный параллельный код ни с чем не сравнимый Вычислительный Тулбокс, вы запускаете код в сериале на вашей машине. Когда вы запускаете этот код с Parallel Computing Toolbox, можно автоматически масштабировать и запустить код параллельно по локальной машине в удаленном кластере, или в облаке.

Следующие функции языка параллельного программирования доступны для прототипирования:

  • parfeval — Беспрепятственно запустите несколько функций целиком (начиная с R2021b)

  • parfor — Беспрепятственно запустите циклы for параллельно (начиная с R2008a)

Для получения дополнительной информации смотрите, Идут параллельно Язык в MATLAB.

Компактное Отображение для Классов: Настройка отображения информации о классах, когда пробел ограничивается

Используйте matlab.mixin.CustomCompactDisplayProvider класс, чтобы настроить, как информация о ваших классах отображена в контейнерной переменной — такой как struct, массив ячеек или таблица — где пробел ограничивается. Опции для индивидуальной настройки включают:

  • Отображение частичных наборов данных

  • Добавление аннотаций

  • Управление, как и когда имена классов отображены

Например, класс перечисления дней недели, WeekDays, может быть настроен так, чтобы когда массивы WeekDays члены не могут быть полностью отображены, MATLAB отображает размер, класс и аннотацию. Когда ширина Командного окна является достаточно большой, полный массив показывают:

myStruc = 

  struct with fields:

    prop1: [Monday    Wednesday    Friday    Saturday    Sunday]

Когда Командное окно не достаточно широко, чтобы отобразить полный массив, размер, класс, и аннотацию показывают:

myStruc = 

  struct with fields:

    prop1: 1x5 Weekdays (Enum of days of week)

Искажение класса: Создайте псевдонимы для переименованных классов, чтобы обеспечить обратную совместимость

Когда необходимо изменить имя класса, можно создать псевдоним, чтобы сохранить совместимость с кодом, записанным перед сменой имени. matlab.alias.AliasFileManager класс обеспечивает API для определения и реализации псевдонимов. Если вы задаете псевдоним, можно использовать псевдоним где угодно, вы используете имя класса. Псевдонимы обеспечивают обратную совместимость при перезагрузке объектов со старым названием в версию MATLAB, которая использует новое имя, а также прямую совместимость, когда загружаемые объекты сохранили в более новой версии в более старую версию, которая предшествует определению псевдонима. MATLAB заменяет новым именем класса каждый раз, когда это сталкивается со старым названием.

Модульная Индексация: Настройте операции индексации класса индивидуально с помощью новых суперклассов

Чтобы настроить, как индексирующие операции ведут себя с вашим классом в предыдущих версиях MATLAB, необходимо перегрузить subsref и subsasgn методы. Выполнение так требует кода реализации для всей ссылки индексации и операций присвоения, включая круглые скобки, точку и операции фигурной скобки, даже если вы хотите изменить только один тип индексации операции.

Начиная в R2021b, можно наследоваться трем новым суперклассам, чтобы настроить круглые скобки, точку и операции индексации фигурной скобки индивидуально:

Можно наследоваться одному или нескольким из этих классов, не влияя, как другие операции индексации работают. Эти классы также позволяют вам передать уровни индексации в составных операторах к другим значениям MATLAB. Например, ваш класс может реализовать пользовательскую индексацию круглых скобок для первого уровня составной ссылки и затем позволить MATLAB применять другие уровни к объекту, содержавшему в вашем классе.

Скалярные классы: наследуйтесь matlab.mixin.Scalar суперкласс, чтобы гарантировать экземпляры ведет себя как скаляры

Экземпляры классов, которые наследовались matlab.mixin.Scalar должен вести себя как скаляры. Вы не можете сформировать массивы экземпляров такого класса, включая пустые массивы, и вы не можете конкатенировать экземпляры. Этот класс полезен для случаев, в которых конкатенация не целесообразна, как словарь или другой контейнерный класс, в котором индексация круглых скобок настраивается, чтобы получить доступ к данным в классе, не сформировать или получить доступ к массивам.

startat Функция: информация о Часовом поясе в datetime объекты теперь поддержаны

startat функция теперь распознает часовой пояс и информацию о летнем времени datetime входные параметры.

Функциональность, удаляемая или измененная

newclass входной параметр синтаксиса cast(A,newclass) является теперь чувствительным к регистру

Изменение поведения

Начиная в R2021b, newclass входной параметр синтаксиса cast(A,newclass) является чувствительным к регистру. Необходимо задать newclass как вектор символов или строка строчных букв, которая представляет новый тип данных.

Например, чтобы преобразовать double значение к int8 тип данных, необходимо использовать b = cast(1.234,'int8'). Синтаксис функций b = cast(1.234,'Int8') теперь выдает ошибку.

Определение классов и пакетов: Используя schema.m не будет поддерживаться в будущем релизе

Все еще работает

Поддержка классов и пакетов, заданных с помощью schema.m файлы будут удалены в будущем релизе. Замените существующие основанные на схеме классы на классы, заданные с помощью classdef ключевое слово.

InexactCaseMatch и InexactCaseMatchForExtension Ошибки: Эти ошибки заменяются UndefinedFunction ошибка

Изменение поведения

InexactCaseMatch и InexactCaseMatchForExtension ошибки были удалены, и MATLAB выдает UndefinedFunction ошибка вместо этого. Это изменение не генерирует новые ошибки в коде, который ранее не выдавал ошибку.

Анализ данных

Вычислите Live Editor Группы Задачу: В интерактивном режиме обобщите, преобразуйте или отфильтруйте группы данных

Используйте Вычисление Live Editor Группы задача в интерактивном режиме вычислить статистику, преобразовать данные или данные о фильтре группой. Чтобы открыть задачу в Live Editor, используйте меню Task на вкладке Live Editor.

Нормируйте Live Editor Данных Задача: В интерактивном режиме сосредоточьте и масштабируйте данные

Используйте Нормировать Live Editor Данных задача визуализировать эффекты центрирования и масштабирования данных с помощью различных методов, таких как z - счет. Чтобы открыть задачу в Live Editor, используйте меню Task на вкладке Live Editor.

Чистый Пропавший Live Editor Данных Задача: Задайте отсутствующие значения

При использовании Чистого Пропавшего Live Editor Данных задача можно теперь задать индикаторы отсутствующего значения, которые отличаются от стандартных отсутствующих значений MATLAB.

trenddecomp Функция: Найдите тренды в данных

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

min и max Функции: Задайте метод сравнения для определения минимальных и максимальных значений

min и max функции теперь принимают 'ComparisonMethod' параметр, который задает метод для определения минимальных и максимальных значений входа при сохранении знака в выходе.

uniquetol Функция: Опции к выбору элемента управления и области значений заповедника данных

uniquetol имеет две новых опции, чтобы управлять поведением:

  • occurrence аргумент: Задайте, начинается ли алгоритм с самых высоких или самых низких элементов во входных данных. Это может измениться, какой элемент, среди нескольких, которые являются в допуске друг друга, выбран как являющийся уникальным. Значение по умолчанию должно начаться с самых низких элементов.

  • 'PreserveRange' аргумент значения имени: Задайте, должна ли область значений выходных данных совпасть с входными данными.

Функции Предварительной обработки данных: Задайте табличную переменную как вектор точек выборки

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

dateshift Функция: Переключите к следующему вхождению буднего или дня выходных дней

Можно теперь использовать 'weekday' и 'weekend' аргументы, чтобы переключить элементы datetime массив при использовании dateshift функция.

  • Переключать к следующему вхождению рабочего дня на или после каждого элемента входа datetime массив, используйте 'weekday'.

  • Переключать к следующему вхождению дня выходных дней на или после каждого элемента входа datetime массив, используйте 'weekend'.

isbetween Функция: Поддержка открытых, закрытых, и полуоткрытых интервалов

isbetween функционируйте теперь поддерживает открытые, закрытые, и полуоткрытые интервалы. В предыдущих релизах, isbetween поддержки только закрыли интервалы.

isregular Функция: поддержка datetime и duration типы данных

Можно теперь использовать isregular функция, чтобы определить, если расписание, datetime вектор или duration вектор является регулярным. В предыдущих релизах можно использовать isregular только на расписании.

istabular Функция: Определяет, является ли вход таблица или расписание

Чтобы определить, является ли входная переменная или таблицей или расписанием, используйте istabular функция.

Используя эту функцию эквивалентно использованию оператора tf = istable(A) || istimetable(A), но более удобно.

retime и synchronize Функции: Медиана и методы режима поддержаны

Когда вы синхронизируете данные в расписаниях, можно теперь задать 'median' и 'mode' когда агрегация функционирует. Для получения дополнительной информации смотрите retime и synchronize.

timeofday Функция: Возвратите дату как второй выходной аргумент

Можно теперь возвратить даты в элементы datetime массив как второй выходной аргумент от timeofday функция.

timeseries2timetable Функция: преобразуйте timeseries объекты к расписаниям

Преобразовывать timeseries объекты к расписаниям, используйте timeseries2timetable функция.

Функциональность, удаляемая или измененная

isordinal принимает входной параметр, который имеет любой тип данных

Изменение поведения

isordinal функция теперь принимает входной параметр, который имеет любой тип данных. В предыдущих релизах, isordinal выдал ошибку, если входным параметром не был categorical массив.

Live Editor Синхронизации Timetables задача синхронизирует неограниченное количество расписаний

Изменение поведения

Live Editor Синхронизации Timetables задача может теперь синхронизировать неограниченное количество расписаний. В предыдущих релизах задача может синхронизировать не больше, чем пять расписаний.

timeseries2timetable замены ts2timetable

Изменение поведения

timeseries2timetable функционируйте заменяет ts2timetable функция, несмотря на то, что ts2timetable все еще обеспечивается. Две функции являются синонимами. В R2021a обеспечивает MATLAB ts2timetable только.

Импорт и экспорт данных

sftp Функция: Свяжите с серверами SFTP

MATLAB может связать с серверами SFTP для передач зашифрованных данных. Создайте объект связи SFTP использование sftp функционируйте, чтобы считать данные из сервера SFTP.

Хранилища данных: задайте FileSet объекты как местоположения данных для некоторых хранилищ данных

Некоторые функции datastore и объекты принимают FileSet объекты как местоположения файлов, чтобы включать в datastore. FileSet объекты обеспечивают увеличенную эффективность по сравнению с путями к файлам или DsFileSet объекты. Эта функциональность поддерживается этими функциями:

  • tabularTextDatastore

  • spreadsheetDatastore

  • fileDatastore

  • keyValueDatastore

  • tallDatastore

  • parquetDatastore

  • imageDatastore

  • signalDatastore (Signal Processing Toolbox)

  • audioDatastore (Audio Toolbox)

  • mdfDatastore (Vehicle Network Toolbox)

Табличный Импорт: Считайте таблицы из документы Microsoft Word и HTML

readtable функционируйте теперь поддерживает таблицы чтения от HTML и Microsoft® Файлы Word.

Чтобы настроить настройки импорта для HTML и файлов Microsoft Word, используйте htmlImportOptions и wordDocumentImportOptions, соответственно. Чтобы автоматически обнаружить настройки импорта из файлов, используйте detectImportOptions функция.

Интерфейс HDF5: Используйте новую функциональность в поддержку HDF5 1.10.7

Используйте эти новые возможности интерфейсов функции MATLAB HDF5:

  • Single-Writer/Multiple-Reader (SWMR) — Запишите данные к файлу HDF5 в одном процессе, в то время как вы одновременно читаете из файла в одном или нескольких процессах читателя. Для получения дополнительной информации смотрите Рида и запись данных Одновременно Используя Single-Writer/Multiple-Reader (SWMR).

  • Виртуальный Набор данных (VDS) — Использование низкий уровень MATLAB взаимодействует через интерфейс, чтобы получить доступ к данным, хранимым через несколько файлов HDF5, включая файлы в удаленных местоположениях, как один, объединенный набор данных HDF5. Можно также считать данные, хранимые в Виртуальных Наборах данных с помощью высокоуровневого интерфейса HDF5. Для получения дополнительной информации смотрите работу с Виртуальными Наборами данных HDF5 (VDS).

  • Подстройка Кэша метаданных — Улучшает производительность путем управления параметрами кэша метаданных, такими как ограничение количества попыток чтения файла.

  • Частичный Фрагмент Ребра — Управление, отфильтровать ли частичные фрагменты ребра.

Интерфейс NetCDF: Считайте и запишите NC_STRING данные

Можно теперь использовать существующий высокий уровень и низкоуровневые функции, чтобы считать NC_STRING данные из NETCDF 4 файла и текстовые данные о записи как тип NC_STRING.

Для получения дополнительной информации об отображении типа данных между NetCDF API и MATLAB, см. Отображение синтаксиса NetCDF API к Синтаксису MATLAB.

Научные Библиотеки Формата файла: библиотеки HDF5 и NetCDF обновляются

Библиотека HDF5 обновляется до версии 1.10.7, и библиотека NetCDF обновляется до версии 4.7.4.

Аудио, Видео и Функции ввода-вывода Изображений: Запустите функции в основанной на потоке среде

Можно теперь запустить следующие функции в фоновом режиме с помощью MATLAB backgroundPool:

Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.

Библиотеки Формата Файла изображения: библиотека LibTIFF обновила до версии 4.2.0

Библиотека LibTIFF обновляется до версии 4.2.0.

Новый Serial Explorer и приложения TCP/IP Explorer

Два новых приложения предлагают функциональность для связи с вашим устройством, инструментом или сервером:

  • Приложение Serial Explorer обеспечивает пользовательский интерфейс, чтобы соединиться с и связаться с устройством последовательного порта на вашей машине.

  • Приложение TCP/IP Explorer обеспечивает пользовательский интерфейс, чтобы создать клиент TCP/IP, который связывается с сервером TCP/IP.

Запустите эти приложения от вкладки Apps под разделом Test and Measurement. Можно также вызвать serialExplorer и tcpipExplorer команды в Командном окне.

Можно использовать приложения, чтобы выполнить следующие операции на устройстве последовательного порта или клиенте TCP/IP.

  • Сконфигурируйте свойства связи и коммуникации.

  • Запишите двоичный файл или представьте данные в виде строки.

  • Считайте двоичный файл или представьте данные в виде строки.

  • Отобразите данные на графике в отдельном окне рисунка.

  • Анализируйте данные путем просмотра его в приложении Signal Analyzer.

  • Экспортируйте данные в рабочее пространство MATLAB.

  • Сгенерируйте скрипт MATLAB для взаимодействий приложений, который использует serialport или tcpclient интерфейс.

Для получения дополнительной информации об этих приложениях, смотрите Serial Explorer и TCP/IP Explorer.

Функциональность, удаляемая или измененная

Видео и Функции ввода-вывода Изображений: различия в Пиксельном значении могут существовать между изображениями JPEG 2000 в R2021b и предыдущих версиях MATLAB

Изменение поведения

В R2021b, когда вы используете imreadimwriteVideoReader, или VideoWriter функции, чтобы читать или записать JPEG 2 000 файлов изображений, изображение вы импортируете или экспортируете в силе R2021b, имеют различия в пиксельном значении для того же изображения в предыдущих версиях MATLAB.

Интерфейс HDF5: пользователи Linux должны восстановить плагины фильтра с помощью совместно использованной библиотеки MATLAB HDF5 1.10.7

Изменение поведения

Начиная в R2021b, в определенных случаях, Linux® пользователи, использующие плагин фильтра с коллбэками к базовым библиотечным функциям HDF5, должны восстановить плагин с помощью совместно использованной библиотеки поставляющегося MATLAB HDF5 1.10.7, /matlab/bin/glnxa64/libhdf5.so.103.3.0. Если вы не восстанавливаете плагин с помощью этой версии разделяемой библиотеки, вы можете испытать проблемы в пределах от неопределенного поведения к катастрофическим отказам. Для получения дополнительной информации смотрите Сборку Плагины Фильтра HDF5 на Linux Используя MATLAB HDF5 Разделяемая Библиотека или Карта Экспорта GNU.

ftp Функция: FTPClientConfig класс, свойства и методы больше не поддерживаются

ftp функционируйте больше не поддерживает FTPClientConfig Apache™ класс или любые связанные объекты, свойства или методы. Настроить, как проанализировать LIST команда выход FTP-сервера использует ftp DirParserFcn функции аргумент значения имени.

Редактор переменной MATLAB: timeseries больше не будет поддерживаться в будущем релизе

Все еще работает

Просмотр timeseries объекты с помощью Редактора переменной MATLAB больше не будут поддерживаться в будущем релизе. Чтобы просмотреть индексированные временем данные в Редакторе переменных, использовать timetable вместо этого.

Математика

ode78 и ode89 Функции: старшие решатели Рунге-Кутта для обыкновенных дифференциальных уравнений

Пакет ODE MATLAB был расширен с двумя новыми решателями:

  • ode78 использует 7-й и 8-й порядок формулы Рунге-Кутта

  • ode89 использует 8-й и 9-й порядок формулы Рунге-Кутта

Новые решатели подробно останавливаются на существующих решателях Рунге-Кутта ode23 и ode45. В частности, ode78 и ode89 может быть более эффективным, чем ode45 на нежестких проблемах, которые являются гладкими, и ode89 может быть более эффективным, чем ode78 на очень сглаженных проблемах, когда вы объединяетесь на долговременных интервалах или когда допуски трудны.

pagesvd Функция: Выполните сингулярное разложение на страницах массивов N-D

Используйте pagesvd функция, чтобы выполнить обработанные в пакетном режиме сингулярные разложения на страницах массивов N-D. В этом контексте массив N-D обработан как контейнер для нескольких 2D матриц.

svd Функция: Опция, чтобы управлять выходным форматом сингулярных значений

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

mpower Функция: Улучшенный алгоритм для дефектных матриц

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

Функциональность, удаляемая или измененная

svd, eig, cond, и pinv функции возвращают NaN для неличных входных параметров

Изменение поведения

В R2021b, svd, eig, cond, и pinv функции возвращают NaN значения, когда вход содержит неличные значения (Inf или NaN).

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

Графика

Данные о Планшетном графопостроителе: Создайте графики рассеивания, пузырьковые диаграммы и графики роя передающими таблицами непосредственно к функциям построения графика

Создайте графики путем передачи таблицы непосредственно любой из этих функций: scatter, scatter3, bubblechart, bubblechart3, swarmchart, swarmchart3, polarscatter, и polarbubblechart. Когда вы задаете свои данные как таблицу, подписи по осям и легенда (если есть) автоматически помечены с помощью имен табличной переменной.

Объекты, возвращенные этими функциями, имеют новые свойства поддержать таблицы.

СвойствоОписание

SourceTable

Таблица, содержащая данные, чтобы построить

XVariableYVariable , и ZVariable

Табличные переменные, содержащие x, y, и z значения для Декартовых графиков

ThetaVariable и RVariable

Табличные переменные, содержащие угол и значения радиуса для графиков в полярной системе координат

SizeVariable

Табличная переменная, содержащая данные о размере маркера

ColorVariable

Табличная переменная, содержащая данные о цвете маркера

AlphaVariable

Табличная переменная, содержащая данные о прозрачности маркера

Например, составьте таблицу с переменными "Trials" и "Response". Передайте таблицу scatter функционируйте как первый аргумент и укажите на переменные, которые вы хотите построить по наименованию.

Trials = randi(10,50,1);
Response = rand(50,1);
t = table(Trials,Response);
scatter(t,"Trials","Response")

Scatter plot with x- and y-axis labels that reflect the table variable names.

Метки деления осей и Цвета: Управляйте внешним видом меток метки деления на оси и цветов метки в виде галочки

Теперь можно удалить отметки деления и настроить цвета метки в виде галочки независимо от других элементов в осях.

  • Удаление Отметок деления — Удаляет все отметки деления из оси, полярные оси или географический объект осей путем установки TickDir свойство к 'none'. Чтобы удалить отметки деления из определенной оси, например, x - ось, устанавливают TickDirection свойство линейки к 'none'.

  • Настройка Цветов Метки в виде галочки — Настраивает цвет меток в виде галочки на оси путем установки TickLabelColor свойство соответствующего объекта линейки. Можно настроить цвета метки в виде галочки для любых осей, полярных осей или географических осей.

Например, создайте столбчатую диаграмму, и затем получите текущую систему координат. Удалите x - метки метки деления на оси и измените цвет x - метки метки деления на оси к красному.

bar([2017 2018 2019 2020],1:4)
ax = gca;
ax.XAxis.TickDirection = 'none';
ax.XAxis.TickLabelColor = 'r';

Scatter plot with x-axis label and legend labels that reflect the table variable names.

Создайте График Живая Задача: Добавьте дополнительную визуализацию в сгенерированные графики

Легко добавьте дополнительную визуализацию в графики, сгенерированные с помощью Создать Графика Живая Задача. Чтобы добавить новый график, кликните по вкладке Add в нижней части Живой Панели Задачи и выберите визуализацию и данные. Эта Живая Задача построила график с помощью hold функция.

A Screen shot of the Create Plot Live Task showing a line plot of a sine wave in blue and a bubble plot of a cosine wave in orange.

Создайте График Живая Задача: Диаграмма управления ввела синтаксис с помощью выпадающей настройки

Создать График Живая Задача теперь поддерживает несколько настроек построения диаграммы функций с несколькими входными синтаксисами, включая surf и mesh. Используйте Configurations выпадающее меню, чтобы выбрать желаемую настройку.

A screenshot of the configuration drop-down menu for a surf plot

exportgraphics Функция: Получите и добавьте графику к существующему PDFs

Получите и добавьте графику к существующему файлу PDF путем вызова exportgraphics функция и установка 'Append' аргумент значения имени к true. Например, создайте график и экспортируйте его как PDF по имени 'mycharts.pdf'. Затем создайте столбчатую диаграмму и добавьте ее в конец 'mycharts.pdf'. Получившийся файл PDF имеет две страницы. Графики появляются в PDF в порядке, что вы экспортируете их.

plot([0 3 1 6 4 10])
exportgraphics(gca,'mycharts.pdf')
bar([10 20 30 40])
exportgraphics(gca,'mycharts.pdf','Append',true)

stackedplot Функция: Поддержка полулогарифмических осей Y

Можно создать графики с помощью stackedplot функционируйте, где отдельные оси Y могут быть построены на логарифмической шкале. Чтобы установить логарифмическую шкалу для оси Y графика, установите YScale свойство StackedAxesProperties объект сопоставлен с графиком. Для получения дополнительной информации смотрите StackedAxesProperties Properties.

Text Объекты: используйте editInteractions в Interactions свойство щелкнуть или коснуться на тексте, чтобы отредактировать

Щелкните или коснитесь, чтобы отредактировать текст когда Interactions свойство имеет значение editInteraction. Взаимодействие редактирования является поведением по умолчанию для title, subtitlexlabelYLabel , и zlabel текстовые объекты для осей, географических осей и полярных осей.

dataTipTextRow Функция: Настройте содержимое всплывающей подсказки использование свойств данных, таких как UserData

Можно теперь присвоить информацию DataTipTemplate свойство путем передачи его dataTipTextRow функционируйте как имя свойства, такое как UserData.

p = patch;
p.UserData = p.XData;
p.DataTipTemplate.DataTipRows(3) = dataTipTextRow('XDataAsUserData','UserData');

MATLAB Доступность Online™: Используйте программу экранного доступа, чтобы взаимодействовать с фигурами

В MATLAB Online™ можно использовать программу экранного доступа и команды клавиатуры к панорамированию, масштабировать и вращаться, когда вы работаете с отображенными на графике данными. Используя программу экранного доступа не поддерживается в Live Editor.

Для получения дополнительной информации смотрите Использование Программа экранного доступа в MATLAB Online.

Для получения дополнительной информации о взаимодействии с фигурами MATLAB смотрите Интерактивность Диаграммы управления.

Функциональность, удаляемая или измененная

print опции -opengl и -painters не рекомендуются

Все еще работает

Следующее print опции больше не рекомендуются. Нет никаких планов удалить значения, и они продолжат вести себя тот же путь как в предыдущих релизах. В следующей таблице перечислены рекомендуемые заменяющие опции.

Не рекомендуемыйЗаменяющая опция

-opengl опция средства отображения. Например:

print('-opengl','-dpdf','myfigure.pdf')

Используйте -image опция. Например:

print('-image','-dpdf','myfigure.pdf')

-painters опция средства отображения. Например:

print('-painters','-dpdf','myfigure.pdf')

Используйте -vector опция. Например:

print('-vector','-dpdf','myfigure.pdf')

plottools функции будут удалены в будущем релизе

Все еще работает

plottools описанные ниже функции будут удалены в будущем релизе. Используйте inspect запустить Property Inspector вместо этого.

plottools функции

Создание приложений

uialert, uiconfirm, и uiprogressdlg Функции: Повысьте текст и уравнения отображения в диалоговых окнах

Когда вы создаете диалоговые окна с помощью uialert, uiconfirm, и uiprogressdlg функции, включите разметку в тексте диалогового окна с помощью Interpreter аргумент значения имени. Задайте интерпретатор как 'html', 'latex', 'tex', или 'none'.

addStyle Функция: Добавьте стили в узлы и уровни в древовидном компоненте пользовательского интерфейса

Создайте стили для определенных древовидных узлов или древовидных уровней узла в древовидном компоненте пользовательского интерфейса использование uistyle и addStyle функции. Например, можно сделать древовидные узлы в верхнем уровне древовидного красного цвета с курсивным шрифтом. Чтобы получить информацию о прикладных стилях, запросите StyleConfigurations свойство Tree объект. Чтобы удалить стиль из дерева, используйте removeStyle функция.

uitable Функция: Установите и выборы таблицы запроса программно и управляйте табличными опциями выбора

Можно теперь сконфигурировать опции выбора компонентов таблицы UI.

  • Установите и запросите табличный выбор с помощью Selection свойство.

  • Задайте, может ли пользователь выбрать ячейки таблицы, строки или столбцы с помощью SelectionType свойство.

  • Задайте, может ли пользователь выбрать один или несколько табличных элементов с помощью Multiselect свойство.

  • Обновите свое приложение каждый раз, когда пользователь выбирает табличные данные путем определения SelectionChangedFcn 'callback'.

Опции выбора в компонентах таблицы UI поддерживаются только в приложениях App Designer и в цифрах созданный с uifigure функция.

Для получения дополнительной информации смотрите Свойства таблиц.

uitextarea Функция: приложения Программы, чтобы ответить, в то время как пользователь вводит в компоненте текстовой области

Можно теперь задать ValueChangingFcn коллбэк для TextArea компонент. Компонент выполняет функцию обратного вызова неоднократно, в то время как пользователь вводит в текстовой области.

Для получения дополнительной информации смотрите TextArea Properties.

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

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

Используйте фоновый пул со следующим языком параллельного программирования:

Для получения дополнительной информации смотрите Использование Фон, чтобы Сделать Ваши Приложения Более быстро реагирующими.

Дизайнер приложений: Отладьте код в Представлении кода

При отладке кода в App Designer теперь можно диагностировать проблемы с помощью управления отладкой в Code View. Можно использовать средства управления в разделе Run вкладки Editor, чтобы запуститься к следующей точке останова, запустить следующую строку кода или шаг в или из функции.

Debugging controls in App Designer. There are five buttons: Continue, Step, Step In, Step Out, and Stop.

Можно также отладить код приложения с помощью встроенного управления отладкой. Например, чтобы запуститься к определенной строке кода и затем сделать паузу, нажмитеrun to here кнопку слева от линии. Чтобы продвинуться в функцию, нажмитеstep in кнопку непосредственно слева от функции, в которую вы хотите продвинуться. После вступания нажмитеstep out кнопку наверху файла, чтобы запустить остальную часть вызванной функции, оставить вызванную функцию, и затем сделать паузу.

Когда вы продвигаетесь в вызванную функцию или файл, App Designer отображает список стилей навигационной цепочки функций MATLAB, выполняемый прежде, чем сделать паузу в текущей линии (также названный стеком вызовов функции). Стек вызовов функции показывают наверху файла и отображает функции в порядке, начиная слева с первого названного скрипта или функции, и заканчиваясь справа текущим скриптом или функцией, в которой приостановлен MATLAB.

Bread-crumb style function call stack showing the two functions called, displayed left to right. The first function is plotRand the second function is mean. The step out button displays to the right of the function call stack.

Дизайнер приложений: Эффективно управляйте своим кодом приложения с инструментами и ярлыками от Live Editor

Многие инструменты и ярлыки для навигации и организации кода, которые доступны в Live Editor, могут теперь использоваться в App Designer Code View. Эта таблица приводит функциональность, которая в новинку для App Designer.

ФункциональностьПункт менюГорячая клавиша
Перенесите комментарий

Щелкните правой кнопкой по комментарию и выберите Wrap Comments, или во вкладке Editor, в разделе Code, нажмитеWrap comment кнопку.

Ctrl+J
Переместитесь по коду с помощью закладок

Во вкладке Editor, в разделе Navigate, нажимают Bookmark. Затем выберите Bookmark, чтобы установить или очистить закладку на текущей линии или выбрать Previous или Next, чтобы перейти между существующими закладками.

Drop-down with bookmark options

Установите или очистите закладку: Ctrl+F2
Перемещение к предыдущей закладке: Shift+F2
Переместитесь, чтобы затем отметить F2
Распечатайте код приложения

Во вкладке Editor, в разделе File, нажимают Print. Можно распечатать целый документ или текущий выбор.

App designer print options menu.

Ctrl+P
Сверните и расширьте код

Во вкладке View нажмите кнопки в разделе Code Folding.

Code folding options to expand, collapse, expand all, or collapse all.

Расширьте текущий сгиб: Ctrl+Shift+Period (.)
Сверните текущий сгиб: Ctrl+Period (.)
Расширьте все сгибы: Ctrl+Shift+Comma (,)
Сверните все сгибы: Ctrl+Comma (,)
Переключите настройки отображения

Во вкладке View, в разделе Display, переключаются выделение линии и номера строки.

App Designer display options. The options are: Highlight Current Line, Line Numbers, and Datatips.

N/A
Дублирующаяся линияЩелкните правой кнопкой по линии и выберите Duplicate Line(s). Ctrl+Shift+C
Вставьте разрыв разделаЩелкните правой кнопкой по линии и выберите Section Break.Ctrl+Alt+Enter или тип %%
Преобразуйте текст в верхний регистр или нижний регистрПодсветите текст, щелкните правой кнопкой по нему и выберите Change Case.Ctrl+Shift+A
Переменная переименовывает

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

Tooltip prompting variable renaming in App Designer

Shift+Enter
Вопросы совместимости

Код, сворачивающийся в App Designer, сохраняется даже после того, как вы закроете и затем вновь откроете файл. В R2021a и более ранних релизах, при открытии файла, App Designer расширяет весь код.

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

В Design View используйте средства управления изменением масштаба в правом нижнем углу холста App Designer, обозначенногоZoom icon кнопкой, чтобы изменить уровень изменения масштаба холста.

Чтобы автоматически масштабировать, чтобы приспособить целое приложение в представлении, нажмите Space. В качестве альтернативы нажмите Fit to View в разделе Zoom вкладки View, или щелкните правой кнопкой по холсту и выберите Zoom> Fit to View.

Дизайнер приложений: Преобразуйте между подобными компонентами пользовательского интерфейса

Чтобы преобразовать один тип компонента пользовательского интерфейса другому со схожей функциональностью, щелкните правой кнопкой по компоненту по холсту или в Component Browser и выберите Replace With. Затем выберите компонент, чтобы преобразовать в. Заменение одного компонента с другим сохраняет соответствующие значения свойств, такие как свойства шрифта и коллбэки, которые существуют для обоих компонентов. Можно преобразовать типы компонента в каждом из этих семейств:

  • Числовое поле редактирования, счетчик, ползунок и кнопка

  • Поле редактирования и текстовая область

  • Метка и гиперссылка

Дизайнер приложений: Добавьте текст справки для своего приложения

Можно теперь обеспечить справку для приложений, которые вы создаете. Текст справки появляется в Командном окне, когда пользователь приложения вызывает help функционируйте и задает имя приложения.

Чтобы добавить текст справки, во вкладке Editor в Code View, нажимают App Help Text. Используйте диалоговое окно App Help Text, чтобы задать сводные данные приложения и подробное объяснение.

Кроме того, когда пользователь приложения просматривает документацию для вашего приложения (например, путем вызова doc функционируйте или путем нажатия на ссылку на документацию в тексте справки для приложения), страница документации теперь отображает дополнительную информацию:

  • Начало страницы отображает сводные данные приложения и подробное объяснение.

  • Раздел Methods Summary отображает публичные функции. Для каждой функции это также отображает любой комментарий, который вставляется после функционального оператора определения.

Дизайнер приложений: Удалите поведение автообратного течения из приложения с автообратным течением

Чтобы преобразовать приложение с автообратным течением к приложению без автообратного течения, во вкладке Canvas в Design View, нажимают Convert. Выберите опцию App without Auto-Reflow. Выполнение так создает копию вашего приложения с удаленным поведением автообратного течения.

Для получения дополнительной информации см. Приложения с Автообратным течением.

Развернутые Веб-приложения: Разверните веб-приложения непосредственно в MATLAB Web App Server из App Designer

Если вам установили MATLAB Compiler™ в системе рабочий MATLAB, группируете ваше приложение MATLAB в веб-приложение из App Designer путем нажатия на Share во вкладке Designer и выбора Web App. В упаковочном диалоговом окне задайте сервер URL, чтобы непосредственно развернуть ваше веб-приложение в сервер, если упаковка завершена. Аутентификация должна быть позволена на сервере для этого работать. Для получения дополнительной информации смотрите Аутентификацию (MATLAB Web App Server).

Среда тестирования приложения: Выполните жесты нажатия на осях и осях пользовательского интерфейса с различными типами выбора

Среда тестирования приложения теперь поддерживает типы выбора мыши в press жесты, которые выполняются на осях пользовательского интерфейса и осях. Например, создайте оси с графиком и затем протестируйте дважды кликать жест в точке (3, 2).

f = uifigure;
ax = axes(f);
plot(ax,1:10)
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(ax,[3 2],'SelectionType','open')

Среда тестирования приложения: Выполните перетаскивают жесты на осях и фигурах с различными типами выбора

Начиная в R2021b, среда тестирования приложения поддерживает drag жесты на фигурах пользовательского интерфейса. Кроме того, когда вы тестируете жест перетаскивания на оси, оси пользовательского интерфейса или фигура пользовательского интерфейса, можно задать тип выбора мыши. Например, создайте фигуру и тормозите его от точки (100, 200) к точке (200, 300) использование жеста щелчка правой кнопкой.

f = uifigure;
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(f,[100 200],[200 300],'SelectionType','alt')

Среда тестирования приложения: Используйте любые единицы измерения в жестах в центре компонентов

Начиная в R2021b, когда вы выполняете жест в центре компонента, компонент или его родительские контейнеры могут использовать любые единицы измерения. В предыдущих релизах среда не поддерживает контейнеры тот непиксель использования модули.

Например, создайте фигуру и установите его Units свойство к 'normalized'. Затем создайте панель на рисунке и нажмите в центре панели.

f = uifigure;
f.Units = 'normalized';
p = uipanel(f);
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(p)

Если вы выполняете жест в центре компонента с помощью синтаксиса, который принимает местоположение как вход (например, press(testcase,comp,location)), затем фигура или родительские контейнеры могут использовать только 'pixels' как их единицы измерения.

Функциональность, удаляемая или измененная

Ctrl+Click выбирает и отменяет выбор ячеек в компоненте таблицы UI

Изменение поведения

В таблицах, составленных с помощью uitable функция, можно выбрать и отменить выбор ячеек таблицы, состоящих из нескольких несмежных участков, путем содержания Ctrl и нажатия на ячейку. В R2021a и более ранних релизах, Ctrl+Click дает особое внимание на ячейку, и Shift+Click выбирает ячейку, которая фокусируется.

Организация панели инструментов App Designer изменилась

Изменение поведения

Организация инструментов в панели инструментов App Designer в Design View и Code View изменилась.

В Design View используйте инструменты во вкладке Canvas, чтобы разметить ваше приложение и использовать инструменты во вкладке View, чтобы управлять вашими настройками Design View.

В Code View используйте инструменты во вкладке Editor, чтобы программировать ваше поведение приложения и запустить и отладить ваше приложение и использовать инструменты во вкладке View, чтобы управлять вашими настройками Code View.

matlab.fonts.editor.codefont.Size установка была удалена

Ошибки

matlab.fonts.editor.codefont.Size установка была удалена. Используйте matlab.fonts.codefont.Size установка вместо этого. matlab.fonts.codefont.Size установка управляет и размером шрифта Code View App Designer и настольным размером шрифта кода.

Чтобы обновить ваш код, измените экземпляры установки matlab.fonts.editor.codefont.Size к matlab.fonts.codefont.Size. Для получения дополнительной информации см. matlab.fonts Настройки.

App Designer Умный Отступ применяется к отдельным линиям

Изменение поведения

Когда вы применяете Умный Отступ к коду в App Designer, изменение добавления отступа применяется только к текущей линии. В R2021a и более ранних релизах, Умная опция Отступа применилась к целому документу.

Чтобы применить Умный Отступ к целому документу, в Code View, сначала выбирают весь код (например, путем нажатия Ctrl+A). Затем примените Умный Отступ путем нажатияSmart indent кнопки во вкладке Editor или нажатия Ctrl+I.

CellSelectionCallback в свойстве компонентов таблицы UI не рекомендуют uifigure- основанные приложения

Все еще работает

Запуск в R2021b, использование CellSelectionCallback свойство программировать ответ на табличный выбор не рекомендуется для компонентов таблицы UI в приложениях App Designer и в цифрах созданный с uifigure функция. Используйте SelectionChangedFcn свойство вместо этого.

Чтобы обновить ваш код, присвойте все функции обратного вызова, присвоенные CellSelectionCallback свойство к SelectionChangedFcn свойство вместо этого. Если функция обратного вызова получает доступ к данным о событиях коллбэка, вы можете должны быть обновить имена свойства события. Например, чтобы получить доступ к индексам элементов выбранный пользователь, используйте Selection свойство TableSelectionChangedData объект. Для получения дополнительной информации смотрите Свойства таблиц.

Производительность

table Индексация Типа данных: Улучшенная производительность при присвоении элементов путем индексирования с фигурными скобками

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

Например, когда вы присваиваете в три табличных переменные с 106 элементы, эффективность в R2021b приблизительно 4.4x быстрее, как показано ниже.

function timingTest()
    t = table(zeros(1e6,1), ones(1e6,1), nan(1e6,1));
    indices = randi(1e6,1,10000);

    tic;
    % Assign row vector of random values to randomly chosen row
    for i = indices
        t{i,:} = rand(1,3);
    end
    toc
end

Аппроксимированные времена выполнения:

R2021a: 7,4 с

R2021b: 1,7 с

Код был синхронизирован в системе Windows 10 с Intel на 3,6 ГГц Xeon W-2133 CPU путем вызова timingTest функция в R2021a и R2021b.

qrinsert и qrdelete Функции: QR-факторизации изменения Улучшенной производительности

qrinsert и qrdelete функции показывают улучшенной производительности вставляющие и удаляющие строки и столбцы в QR-факторизации. Ускорение является самым примечательным для квадратных матриц порядка 1000 или меньше и является подобным в величине для обеих строк и столбцов.

Например, этот код использует цикл, чтобы вставить и удалить столбцы из QR-факторизации случайного 200 200 матрица. qrinsert и qrdelete о 12x быстрее, чем в предыдущем релизе.

function timingQRMod
X = rand(200);
[Q,R] = qr(X);
y = rand(200,1);
tic
for k = 1:1000
    [Qn,Rn] = qrinsert(Q,R,100,y);
end
toc
tic
for k = 1:1000
    [Qn,Rn] = qrdelete(Q,R,100);
end
toc
end

Аппроксимированные времена выполнения:

R2021a: 1,7 с (вставка) и 1,2 с (удаление)

R2021b: 0,15 с (вставка) и 0,10 с (удаление)

Код был синхронизирован на Windows 10, Intel Xeon W-2133 CPU система тестирования на 3,60 ГГц путем вызова timingQRMod функция.

Заголовки и подписи в Графиках: Улучшенная производительность при создании и запросе заголовков или меток в цикле

Создание и запрос следующих типов заголовков и меток в цикле имеют улучшенную производительность.

  • Постройте заголовки, такие как созданные с title или subtitle функции

  • Подписи по осям, такие как созданные с xlabel, ylabel, или zlabel функции

Например, этот код создает 100 осей с заголовками в мозаичном размещении графика. Это запускается 11.9x быстрее, чем в предыдущем релизе:

function timingTitle
tiledlayout(10,10);
for n = 1:100
    nexttile
    title(n)
end
end

Аппроксимированные времена выполнения:

R2021a: 9,5 с

R2021b: 0,8 с

Код был синхронизирован на Windows 10, Intel Xeon CPU E5-1650 v4 система тестирования на 3,60 ГГц путем вызова timeit функция:

timeit(@timingTitle)

Увеличение производительности увеличивается с количеством осей, заголовков и подписей по осям, с которыми вы работаете. Например, эта таблица показывает улучшения для цикличного выполнения более чем 10, 20, 50, и 100 осей с заголовками.

Количество осей с заголовкамиУвеличение производительности
102.5x
204.2x
507.0x
10011.9x

Взаимодействия графика: Улучшенная производительность для рендеринга всплывающих подсказок и вращения графиков рассеивания больших наборов данных

В цифрах созданный с uifigure функционируйте и в MATLAB Online™, взаимодействия с графиками рассеивания больших наборов данных имеют следующие повышения производительности:

  • Маркеры всплывающей подсказки отслеживают движение мыши более тесно.

  • 3-D точечные графики являются более быстро реагирующими к жестам вращения.

Это улучшение видно, когда оси создаются с любым axes или uiaxes функция.

Например, на Windows 10, Intel Xeon CPU E5-1650 v4 система на 3,60 ГГц, когда вы наводите курсор на следующую сферу, изменения курсора в перекрестии более быстро и маркеры всплывающей подсказки, отслеживает курсор более тесно. Когда вы перетаскиваете курсор в осях, сфера вращается более быстро и отслеживает курсор более тесно.

f = uifigure;
ax = axes(f);
[X,Y,Z] = sphere(900);
scatter3(ax,X(:),Y(:),Z(:),[],Z(:),".")

Two spheres created with approximately 800,000 scattered points. The first sphere shows a data tip and its marker, and the second shows the cursor in rotation mode.

Графики в Приложениях: Улучшенная производительность для создания графиков

Производительность улучшается для создания графиков в приложениях или в цифрах созданный с uifigure функция. Например, создайте фигуру и объект осей. Затем постройте 10 000 точек. Этот код запускается 14x быстрее в R2021b.

function timingPlot
% Create figure and axes
f = uifigure;
ax = axes(f);
drawnow;

% Create data vector
y = rand(1,10000);

% Plot the data
tic;
plot(ax,y);
toc;
end

Аппроксимированные времена выполнения:

R2021a: 0,14 с

R2021b: 0,01 с

Код был синхронизирован на Windows 10, Intel Xeon W-2133 CPU система тестирования на 3,60 ГГц путем вызова timingPlot функция.

Дизайнер приложений: Улучшенная производительность при открытии начальной страницы и загрузке приложений

Когда вы используете App Designer, эти операции имеют улучшенную производительность:

  • Открытие начальной страницы App Designer

  • Открытие существующего приложения

Например, вводный App Designer путем ввода appdesigner в загрузках Командного окна начальная страница приблизительно 1.8x быстрее в R2021b, чем в R2021a в первый раз это открыто, и 2.1x быстрее в последующие времена. Аппроксимированные времена запуска:

РелизПервый запускПоследующие стартапы
R2021a6,6 с3,6 с
R2021b3,6 с1,7 с

Кроме того, загрузка приложения в App Designer показывает улучшенную производительность. Например, после создания и сохранения нового пустого приложения, открывая приложение в App Designer о 1.3x быстрее в R2021b, чем в R2021a. Аппроксимированные времена загрузки:

R2021a: 1,98 с

R2021b: 1,56 с

Повышение производительности больше, если вам установили дополнительные тулбоксы.

Эти операции были синхронизированы на Windows 10, центральный процессор Intel Core™ i7-5600 система тестирования на 2,60 ГГц.

Дизайнер приложений: Улучшенная производительность при сохранении приложений

Сохранение приложений в App Designer после того, как вы отредактируете функцию приложения или свойство, быстрее в R2021b, чем в R2021a. Чем больше строк кода в файле приложения, тем больше повышение производительности становится.

Например, на Windows 10, Intel Xeon W-2133 CPU система тестирования на 3,60 ГГц, в приложении, содержащем 10 000 строк кода, если вы нажимаете Property , чтобы создать новое свойство и затем нажать Save , чтобы сохранить приложение, можно запустить обновленное приложение раньше в R2021b, чем в R2021a.

Аппроксимированные времена сохранения:

R2021a: 20 с

R2021b: 1,5 с

Инструмент сравнения: Улучшенная производительность, загружая и сохранив файлы MLAPP

Когда вы используете Инструмент Сравнения, чтобы сравнить и объединить изменения между кодом приложения в файлах MLAPP, эти операции имеют улучшенную производительность:

  • Загрузка файлов в Инструмент Сравнения

  • Сохранив файлы после слияния изменений

Например, если вы загружаете два приложения с 5 000 строк кода в Инструмент Сравнения путем нажатия на Compare в панели инструментов App Designer, можно сравнить и объединить файлы раньше в R2021b, чем в R2021a.

Аппроксимированные времена загрузки:

R2021a: 13 с

R2021b: 8 с

Кроме того, если вы используете Инструмент Сравнения, чтобы объединить изменения между двумя приложениями с 5 000 строк кода (например, путем нажатия на Merge Mode , слияния изменений, и затем нажатия на Save Result ), можно сравнить сохраненные файлы раньше в R2021b, чем в R2021a.

Аппроксимированные времена сохранения:

R2021a: 24 с

R2021b: 8 с

Обе из этих операций были синхронизированы на Windows 10, Intel Xeon W-2133 CPU система тестирования на 3,60 ГГц.

uigridlayout Функция: Улучшенная производительность при добавлении компонентов, охватывающих несколько столбцов с 'fit' width

Эффективность порождения компонентов менеджеру по размещению сетки создала использование uigridlayout функция улучшилась, когда компоненты охватывают несколько столбцов с ColumnWidth значение 'fit'. Повышение производительности поправляется как количество компонентов, охватывающих несколько столбцов, и количество столбцов охватило увеличения.

Например, этот код создает менеджера по размещению сетки с 10 столбцами с ColumnWidth значение 'fit', и затем создает 50 меток, которые охватывают все 10 столбцов. Эффективность в R2021b о 4.7x быстрее, чем в R2021a.

function timingGridLayout
f = uifigure;
numrows = 50;
numcols = 10;
g = uigridlayout(f);
g.Scrollable = 'on';
g.RowHeight = repmat({'fit'},1,numrows);
g.ColumnWidth = repmat({'fit'},1,numcols);
drawnow

tic
for row = 1:numrows
    txt = ['This is a label in row ' num2str(row) ' that spans ' ...
        num2str(numcols) ' columns in the grid.'];
    lbl = uilabel(g,'Text',txt);
    lbl.Layout.Column = [1 numcols];
end
drawnow
toc
end

Аппроксимированные времена выполнения:

R2021a: 5,2 с

R2021b: 1,1 с

Код был синхронизирован на Windows 10, Intel Xeon CPU E5-1650 v4 система тестирования на 3,60 ГГц путем вызова функционального timingGridLayout.

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

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

  • Менеджер по размещению сетки содержит компонент с WordWrap значение 'on'.

  • Строка и столбец, содержащая компонент с переходом на новую строку, имеет RowHeight из 'fit' и ColumnWidth это изменяемого размера, таково как '1x'.

Например, на Windows 10, Intel Xeon CPU E5-1650 v4 система тестирования на 3,60 ГГц, если вы создаете 100 меток с обтекающим текстом в менеджере по размещению сетки с подходящими строками высоты и столбцами изменяемого размера, и затем изменяете размер окна рисунка путем перетаскивания угла фигуры, текста метки, настраивает, чтобы соответствовать размеру фигуры почти сразу. В R2021a существует задержка приблизительно 2 секунд, прежде чем текст настроит.

f = uifigure;
g = uigridlayout(f);
g.ColumnWidth = {'1x'};
numrows = 100;
g.RowHeight = repmat({'fit'},numrows,1);
 
for row = 1:numrows
c = uilabel(g);
c.Text = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit,' ...
' sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'];
c.WordWrap = 'on';
end

Two figure windows with labels with wrapping text. The right window is a resized version of the left window, where the wrapped label text takes up an additional row.

Live Editor: Улучшенная производительность при сохранении live скриптов или функций

Сохранение live скриптов и live функций в Live Editor быстрее в R2021b, чем в R2021a. Улучшение является самым примечательным, когда вы сохраняете live функции больше чем с 1 000 строк кода и live скрипты меньше чем с 100 строками кода.

Например, на Windows 10, Intel Xeon E5-1650 CPU система тестирования на 3,60 ГГц, сохраняя live функцию в качестве примера, содержащую 4 000 строк кода, занимает приблизительно 2,05 секунды в R2021b. В R2021a, сохраняя ту же live функцию занимает приблизительно 2,57 секунды.

Диалоговые окна Обработки данных: Улучшаемая производительность изменения размеров

Пользовательский интерфейс Basic Fitting, Data Statistics UI, Редактор Палитры и Соединенное диалоговое окно Источников данных Графика теперь используют uigridlayout управлять положениями компонентов пользовательского интерфейса. Это изменение приводит к более сглаженному опыту при корректировке размера этих диалоговых окон. Для получения дополнительной информации о Data Statistics UI, смотрите Вычисление с Описательной статистикой.

Например, на Windows 10, Intel Xeon E5-1650 CPU система тестирования на 3,60 ГГц, когда вы увеличиваете размер Colormap Editor, размер, изменяется гладко.

Взаимодействия фигуры: Улучшенная производительность при использовании встроенных взаимодействий осей

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

Например, на Windows 10, Intel Xeon E5-1650 CPU система тестирования на 3,60 ГГц, в то время как panInteraction режим активен, когда вы перетаскиваете курсор в осях панорамирования фигуры более быстро, и отслеживает курсор более тесно.

Фигуры пользовательского интерфейса: Улучшенная производительность при отображении панели инструментов осей

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

Например, на Windows 10, Intel Xeon E5-1650 CPU система тестирования на 3,60 ГГц, когда вы приостанавливаете курсор на осях, панель инструментов осей, появляется более быстро.

Фигуры пользовательского интерфейса: Улучшенная производительность при взаимодействии с соединенными осями

Взаимодействие с соединенными осями имеет улучшенную производительность при использовании фигур, созданных с uifigure функция или фигуры создали в MATLAB Online™.

Инструменты разработки программного обеспечения

Проекты: Сотрудничайте с помощью проектов в MATLAB Online

Начиная в R2021b, MATLAB Online оказывает поддержку для основных рабочих процессов проектов:

  • Создайте пустой проект и добавьте файлы и папки.

  • Клонируйте проект от Git™.

  • Исследуйте свой проект и запустите анализ зависимостей.

  • Создайте проект и управляйте своими файлами проекта программно.

Система контроля версий: Работа с файлами под Git в MATLAB Online

Начиная в R2021b, MATLAB Online оказывает поддержку для основных рабочих процессов Git:

  • Клонирование удаленного репозитория Git

  • Передача файлов к Git

  • Получение по запросу, продвигая, и выбирающие файлы с Git

Среда Модульного тестирования: используйте TestCase шаблон класса, чтобы создать тесты более быстро и точно

Можно теперь создать TestCase класс, включая функциональность базового теста, в MATLAB и MATLAB Online. Чтобы создать новый тестовый класс, выберите New> Test Class на Home, Editor или вкладках Live Editor.

Используйте TestCase шаблон класса, чтобы создать тесты более удобно. Шаблон включает TestClassSetup methods блокируйтесь, TestMethodSetup methods блокируйтесь, и Test methods блокируйтесь, который задает простой Test метод. Чтобы настроить ваш тестовый класс, добавьте код в файл или удалите неиспользованный код, который включен по умолчанию. Для получения дополнительной информации об основанных на классах тестах, смотрите Создание модульных тестов на основе классов в MATLAB.

Среда Модульного тестирования: Запустите живо-функциональные тесты в интерактивном режиме в MATLAB Online

Начиная в R2021b, можно запустить живо-функциональные тесты в интерактивном режиме в MATLAB Online. Когда вы открываете файл MLX, задающий функциональный тест в MATLAB Online, панель инструментов позволяет вам запустить все тесты в файле или только текущем тесте.

Чтобы запустить тесты и настроить ваш тестовый прогон в интерактивном режиме, используйте раздел Run Tests во вкладке Live Editor панели инструментов. Для получения дополнительной информации смотрите Запущенные Тесты в Редакторе.

Среда тестирования приложения: Выполните жесты нажатия на осях и осях пользовательского интерфейса с различными типами выбора

Среда тестирования приложения теперь поддерживает типы выбора мыши в press жесты, которые выполняются на осях пользовательского интерфейса и осях. Например, создайте оси с графиком и затем протестируйте дважды кликать жест в точке (3, 2).

f = uifigure;
ax = axes(f);
plot(ax,1:10)
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(ax,[3 2],'SelectionType','open')

Среда тестирования приложения: Выполните перетаскивают жесты на осях и фигурах с различными типами выбора

Начиная в R2021b, среда тестирования приложения поддерживает drag жесты на фигурах пользовательского интерфейса. Кроме того, когда вы тестируете жест перетаскивания на оси, оси пользовательского интерфейса или фигура пользовательского интерфейса, можно задать тип выбора мыши. Например, создайте фигуру и тормозите его от точки (100, 200) к точке (200, 300) использование жеста щелчка правой кнопкой.

f = uifigure;
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(f,[100 200],[200 300],'SelectionType','alt')

Среда тестирования приложения: Используйте любые единицы измерения в жестах в центре компонентов

Начиная в R2021b, когда вы выполняете жест в центре компонента, компонент или его родительские контейнеры могут использовать любые единицы измерения. В предыдущих релизах среда не поддерживает контейнеры тот непиксель использования модули.

Например, создайте фигуру и установите его Units свойство к 'normalized'. Затем создайте панель на рисунке и нажмите в центре панели.

f = uifigure;
f.Units = 'normalized';
p = uipanel(f);
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.press(p)

Если вы выполняете жест в центре компонента с помощью синтаксиса, который принимает местоположение как вход (например, press(testcase,comp,location)), затем фигура или родительские контейнеры могут использовать только 'pixels' как их единицы измерения.

Функциональность, удаляемая или измененная

Определение diagnostic после аргументов name-value в проверках не рекомендуется

Все еще работает

Запуск в R2021b, когда вы тестируете на равенство с помощью verifyEqualassumeEqualassertEqual, или fatalAssertEqual методы, задавая аргументы name-value перед diagnostic входной параметр не рекомендуется. Поместите аргументы name-value после всех позиционных параметров вместо этого. Несмотря на то, что не рекомендуемый, все еще можно задать diagnostic после аргументов name-value, когда эти аргументы используют name,value синтаксис.

Причина этого изменения состоит в том, что, запускающийся в R2021a, MATLAB поддерживает новый синтаксис для передающих аргументов name-value. В новом синтаксисе имя и аргументы значения соединяются, равняется знаку (name=value), и имя не заключено в кавычки. Чтобы использовать новый синтаксис с методами проверки, задайте позиционные параметры, включая diagnostic, перед name=value аргументы. Если вы задаете diagnostic после name=value аргументы, MATLAB производит ошибку.

Эта таблица показывает пример того, как можно обновить код.

R2021a и ранееЗапуск в R2021b
testCase = matlab.unittest.TestCase.forInteractiveUse;
verifyEqual(testCase,1.5,2, ...
    "RelTol",0.1,"Difference must be within relative tolerance.")
assumeEqual(testCase,1,2, ...
    "AbsTol",0.5,"Difference must be within absolute tolerance.")
testCase = matlab.unittest.TestCase.forInteractiveUse;
verifyEqual(testCase,1.5,2, ...
    "Difference must be within relative tolerance.",RelTol=0.1)
assumeEqual(testCase,1,2, ...
    "Difference must be within absolute tolerance.",AbsTol=0.5)

Для получения дополнительной информации смотрите verifyEqual.

matlab.unittest.TestSuite.fromProject игнорирует файлы, которые не задают процедуры тестирования при создании тестового набора

Изменение поведения

Запуск в R2021b, если проект включает файлы с Test классификация, matlab.unittest.TestSuite.fromProject игнорирует файлы, которые не задают процедуры тестирования, когда вы создаете тестовый набор. Например, если абстрактный TestCase файл определения класса помечен Test классификация, fromProject игнорирует его. В предыдущих релизах MATLAB производит ошибку если fromProject называется на проекте, который использует Test классификация для любых файлов кроме конкретных тестовых файлов. С этим изменением, fromProject становится сопоставимым с matlab.unittest.TestSuite.fromFolder метод: оба метода создают тестовый набор из всех конкретных тестовых файлов и игнорируют любые другие файлы в папке.

Это изменение поведения также применяется testsuite, runtests, и runperf функции, когда они работают с кодом, организованным в файлы и папки в рамках проекта.

Тестовые наборы, созданные из проектов, не могут запуститься без программного обеспечения Java Virtual Machine (JVM)

Изменение поведения

Запуск в R2021b, если вы запускаете MATLAB без Java® Программное обеспечение Virtual Machine (JVM™) и создает набор из тестовых файлов в использовании проекта testsuite, функция использует matlab.unittest.TestSuite.fromProject метод, чтобы создать набор. Если вы затем пытаетесь запустить тестовый набор без программного обеспечения JVM, MATLAB производит ошибку, потому что проект не может быть открыт без программного обеспечения JVM. В предыдущих релизах, когда MATLAB запускается без программного обеспечения JVM, testsuite использование matlab.unittest.TestSuite.fromFolder создать набор из тестовых файлов в проекте и среду тестирования запускает получившийся тестовый набор.

Это изменение поведения также применяется runtests и runperf функции, когда они работают с кодом, организованным в файлы и папки в рамках проекта.

Интерфейсы к внешним языкам

Интерфейс C++: Поддержка функций языка C++

Интерфейс C++ поддерживает эти дополнительные функции языка C++.

Поддержка void** параметры

MATLAB возвращает void* аргумент для void** параметры. Для получения дополнительной информации смотрите пусто ** Типы Входного параметра. Для получения информации об управлении памятью void** параметры, смотрите Владение Передачи Памяти MATLAB.

char [] параметры ведут себя как char * параметры

MATLAB поддерживает char[] параметры или как целое число или как символ (строка), то же самое как char* параметры. Аналогично, Unicode® типы wchar_t[], char16_t[], и char32_t[] ведите себя как wchar_t*, char16_t*, и char32_t*. Для получения дополнительной информации смотрите char C++* и char [] Типы.

Поддержка статических элементов данных

Общедоступный статический и общедоступный const статические элементы данных обработан как свойства только для чтения в MATLAB. Вы не можете изменить значение C++ статический элемент данных в MATLAB. Для получения дополнительной информации смотрите Статические Элементы данных.

Можно использовать общедоступный статический элемент данных (свойство) в качестве типа данных входного параметра или возвратить тип в конструкторе класса, методе или функции. Также можно использовать статическое свойство или метод, чтобы задать форму аргумента. Для получения информации об использовании статических свойств задать форму, смотрите Свойство Использования или Метод как SHAPE.

Интерфейс C++: опции Издателя

Интерфейс C++ поддерживает эти функции конфигурации сборки.

Перезапишите существующие файлы определения библиотеки

Издатели могут автоматически перезаписать существующее определение библиотеки MLX файлы при вызове clibgen.generateLibraryDefinition. Установите аргумент значения имени OverwriteExistingDefinitionFiles на true. Эта опция полезна, когда вы создаете и изменяете файл определения для библиотеки libname.

Когда вы используете эту опцию, MATLAB удаляет definelibname.mlx и definelibnameM, включая любые редактирования вы сделали к файлам.

Опции для определения аргументов

  • По умолчанию, когда вход MATLAB имеет меньше размерностей, чем соответствующий аргумент C++, затем MATLAB вставляет одноэлементные размерности в начале Shape аргумент. Для получения дополнительной информации смотрите, что Размерность Соответствует. Чтобы вставить одноэлементные размерности в конце, установите 'AddTrailingSingletons' аргумент значения имени к true в defineArgument функции - defineArgument (ConstructorDefinition), defineArgument (FunctionDefinition), и defineArgument (MethodDefinition).

  • Если функции C++ использовали параметр символьного массива, чтобы возвратить строку C++, можно задать аргумент так, чтобы функция возвратила отключенную пустым указателем строку. Используйте 'NumElementsInBuffer' аргумент значения имени в defineArgument (FunctionDefinition) или defineArgument (MethodDefinition) функции. Для примера смотрите getMessage функция в таблице Define String Argument.

  • Можно передать владение памяти о функции или параметров метода двойного типа указателя со скалярным выходом к MATLAB с помощью аргумента значения имени DeleteFcn. Для получения дополнительной информации смотрите defineArgument (FunctionDefinition) и defineArgument (MethodDefinition).

  • MATLAB позволяет вам управлять пожизненным управлением объектами, созданными с конструктором путем определения аргумента значения имени ReleaseOnCall в файле определения библиотеки. Для получения дополнительной информации смотрите defineArgument (ConstructorDefinition) и пожизненное управление объектами C++ в MATLAB.

  • Можно использовать метод или свойство задать форму аргумента. Для получения дополнительной информации смотрите Свойство Использования или Метод как SHAPE.

  • Можно передать владение MATLAB памяти о двойных входных параметрах указателя void** и object**. Используйте 'DeleteFcn' аргумент значения имени для defineArgument, как описано во Владении Передачи Памяти MATLAB.

Интерфейс Java: Задайте путь JRE для MATLAB

Можно запустить MATLAB с версией системы среды выполнения Java (JRE™). Для получения информации о версиях Java, совместимых с MATLAB, смотрите Интерфейсы MATLAB на Другие Языки.

Чтобы установить путь JRE в MATLAB, вызвать jenv. Необходимо перезапустить MATLAB, чтобы использовать обновленный путь. Это наборы команд путь для всех будущих сеансов работы с MATLAB, но не изменяет путь для других приложений на вашем компьютере.

В качестве альтернативы можно установить путь от подсказки операционной системы. Вызвать matlab_jenv, затем запустите MATLAB.

Java: Вызовите в MATLAB из программы Java, вызванной MATLAB

Java-разработчики могут использовать com.mathworks.engine.MatlabEngine API getCurrentMatlab метод, чтобы перезвонить в MATLAB из Java. Слияние этого метода в вашем приложении позволяет пользователям MATLAB вызывать функциональность из вашей программы Java.

Для получения информации о разработке этих программ Java смотрите, Перезванивают в MATLAB из Java.

Интерфейс Python: Запустите команды Python и скрипты из MATLAB

pyrun и pyrunfile функции позволяют вам вызвать Python® команды и скрипты из MATLAB. Для получения дополнительной информации смотрите Непосредственно Вызов Функциональность Python из MATLAB

Python: Поддержка комплексных многомерных массивов

Поддержки MATLAB, передающие комплексные данные о многомерном массиве Python и от Python до MATLAB, и для незавершенных и для режимов выполнения из процесса. ​, Например, создайте файл test.py содержа этот код:

def returnData(data):
   return data

Передать комплексный массив MATLAB returnDataВвод:

mc = complex(magic(3));
c = py.test.returnData(mc)
c = 
  Python memoryview:

   8.0000 + 0.0000i   1.0000 + 0.0000i   6.0000 + 0.0000i
   3.0000 + 0.0000i   5.0000 + 0.0000i   7.0000 + 0.0000i
   4.0000 + 0.0000i   9.0000 + 0.0000i   2.0000 + 0.0000i

    Use details function to view the properties of the Python object.

    Use double function to convert to a MATLAB array.

Чтобы преобразовать возвращаемое значение в массив MATLAB, введите:

C = double(c)
C = 3×3 complex    
   8.0000 + 0.0000i   1.0000 + 0.0000i   6.0000 + 0.0000i
   3.0000 + 0.0000i   5.0000 + 0.0000i   7.0000 + 0.0000i
   4.0000 + 0.0000i   9.0000 + 0.0000i   2.0000 + 0.0000i

Для получения информации о MATLAB к отображению типа данных Python см. Матрицы Передачи и Многомерные массивы к Python.

Python: поддержка Версии 3.9

MATLAB теперь поддерживает CPython 3.9, в дополнение к существующей поддержке 2,7, 3.7, и 3.8. Для получения дополнительной информации смотрите Версии Python, Совместимого с продуктами MATLAB Релизом

Документы веб-сервисов WSDL: Apache поддержка версии 3.4.2 CXF

MATLAB поддерживает Apache версия 3.4.2 CXF для использования с веб-сервисами WSDL. Для получения дополнительной информации смотрите Настроенные Инструменты WSDL.

Вопросы совместимости

Загрузите релиз последней версии 3.4.2 инструмента Apache CXF от https://cxf.apache.org / загрузка.

Perl 5.32.1: поддержка MATLAB на Windows

С R2021b MATLAB на Windows поставляется с обновленной версией Perl, версии 5.32.1. См. https://www.perl.org для стандартного распределения Perl, исходного кода Perl и информации об использовании Perl.

Вопросы совместимости

Если вы используете perl команда на платформах Windows, см. https://www.perl.org для получения информации об использовании этой версии языка программирования Perl.

Функциональность, удаляемая или измененная

name=value синтаксические ошибки для вызовов функций Python с помощью py. префикс

Изменение поведения

Начиная в R2021b, ошибки MATLAB, когда вы используете name=value синтаксис для передающих аргументов ключевого слова к функциям Python с помощью py. префикс. В R2021a MATLAB может тихо дать неправильный ответ. Использование pyargs передать аргументы ключевого слова.

Например, print Python функция имеет аргумент sep ключевого слова. Этот оператор Python устанавливает sep аргумент к запятой, сопровождаемой пробелом:

print('comma','separated','values',sep=', ')

Когда вы вызываете этот оператор в MATLAB, MATLAB интерпретирует sep=', ' как name=value аргумент:

py.print('comma','separated','values',sep=', ')
Поведение R2021aПоведение R2021bКак обновить ваш код

py.print(...
    'comma','separated','values',...
    sep=', ')
Тихий неправильный ответ:
comma separated values sep , 

py.print(...
    'comma','separated','values',...
    sep=', ')
Ошибка:
Error using py.print 
Using name=value format is not supported. 
Use pyargs to pass keyword arguments

py.print(...
    'comma','separated','values',...
    pyargs(sep=', '))
comma, separated, values

createSoapMessage, callSoapService, и parseSoapResponse были удалены

Ошибки

Рассмотреть использование matlab.wsdl.createWSDLClient вместо createSoapMessage, callSoapService, и parseSoapResponse функции, чтобы связаться с веб-сервисами с помощью простого протокола доступа к объектам (SOAP). Нет никакой прямой функциональной замены для функций SOAP, но когда вы создаете интерфейс WSDL, у вас есть доступ к функциональности веб-сервиса.

createClassFromWsdl был удален

Ошибки

matlab.wsdl.createWSDLClient функционируйте заменяет createClassFromWsdl функция, чтобы связаться с веб-сервисами из MATLAB с помощью Языка описания веб-сервисов (WSDL). matlab.wsdl.createWSDLClient включает, чтобы указать дополнительную информацию необходимо было получить доступ к документу WSDL. Для получения дополнительной информации смотрите weboptions.

Начать использовать matlab.wsdl.createWSDLClient, выполните эти шаги.

  1. Загрузите поддерживаемые версии Java JDK™ и Apache программы CXF. Для получения дополнительной информации смотрите Настроенные Инструменты WSDL.

  2. Установите пути к этим программам, где jdk путь к установке JDK и cxf путь к программе CXF.

    matlab.wsdl.setWSDLToolPath('JDK',jdk,'CXF',cxf)

Чтобы обновить ваш код, замените вызовы createClassFromWsdl с вызовами matlab.wsdl.createWSDLClient. Например, для веб-сервиса с этим URL:

url = 'https://examplesite.com/samplewebservice';

замените этот вызов createClassFromWsdl:

createClassFromWsdl(strcat(url,'?WSDL'))

с:

matlab.wsdl.createWSDLClient(url)

Примечание

matlab.wsdl.createWSDLClient не поддерживает закодированные RPC документы WSDL.

Аппаратная поддержка

Соединитесь и Управление плата Arduino с помощью Приложения Arduino Explorer

Пакет поддержки MATLAB для Arduino® Оборудование теперь имеет приложение Arduino Explorer.

Используя это приложение, вы можете:

  • Настройте плату Arduino

  • Соединитесь с платой Arduino по USB, Bluetooth®, и WiFi

  • Сконфигурируйте, читайте из и запишите в контакты Arduino

  • Визуализируйте данные из контактов Arduino

  • Запишите и сохраните данные от контактов Arduino до рабочего пространства MATLAB

  • Анализируйте записанные данные

  • Сгенерируйте эквивалентный код MATLAB

Считайте данные из датчика APDS9960, соединенного с оборудованием Arduino

Пакет поддержки MATLAB для Оборудования Arduino позволяет вам считать жест, близость, свет clear и цвет (RGB) данные из APDS9960 датчик соединяется с оборудованием Arduino.

Поддержка CAN экранирует на Оборудовании Raspberry Pi

Используйте Пакет поддержки MATLAB для Оборудования Raspberry Pi™, чтобы считать и записать сообщения CAN из сети CAN на оборудовании Raspberry Pi.