Как интерпретировать структуру данных в функции конструктора matlab?
Не могли бы вы объяснить мне код Matlab ниже? В чем причина использования структуры в функции конструктора?
Почему существует проверка if-else для StructParameters.noInput? Какова же цель этого?
Большое спасибо!!!
classdef класса MyClass
свойства
один;
д;
noInput;
конец
методы
функция obj=myClass(StructParameters)
если Наргин= = 0
Структурные параметры.noInput=1;
еще
Структурные параметры.noInput=0;
конец
if ~isstruct(StructParameters)
ошибка ('входной аргумент должен быть struct.')
еще
% загрузка параметров
F=поля (StructParameters);
для x=1: длина (F)
об..(F{x})=StructParameters.(F{x});
конец
конец
если ~действительно(StructParameters, "а")
obj. a=[1 2; 4 5];
конец
if ~isfield(StructParameters, 'd')
obj. d=[0 1; 4 5];
конец
конец
конец
конец
Что я уже пробовал:
Сделал поиск в Google и некоторых других форумах, но все еще испытывал трудности с пониманием использования структуры в функции конструктора.
RedDk
Я не инженер, а просто миньон, и я не использую MATLAB и не претендую на понимание материала «Struct (s)», но, просто глядя на этот блок кода, я предполагаю, что вы спрашиваете обо всей этой инициализации под названием « мои занятия". В этом случае параметр либо есть, либо его нет, и инициализация завершится в соответствии с первым тестом (noInput). Во-вторых, получение «а» каким-то образом формально объективировано тем, что инициализирует этот класс; отличаться наличием буквы «d», то есть. ... Я не уверен, что на приведенный выше вопрос кто-то может здесь ответить. Итак, попробовать StackExchange для MATLAB? Введите ключевые слова из справки по установке, желательно сочетания концепций, которые являются самыми большими загадками и т. Д.
cpengineer
Спасибо за ваш ответ и комментарии RedDk.
В следующем операторе if-else-end значения (1 и 0)
Структурные параметры.noInput - это просто двоичный файл, указывающий, есть вход или нет?
если Наргин= = 0
Структурные параметры.noInput=1;
еще
Структурные параметры.noInput=0;
конец