Я написал основную функцию в Matlab, которая вызывает другие функции, каждая из которых создает графики на новом рисунке. Хотя каждая функция создает разные графики (разные цвета, количество дочерних участков и т. Д.), Все они имеют некоторые общие черты (шрифт, размер шрифта, ширина линии и т. Д.).
Чтобы упростить изменение вышеупомянутого общего параметра для всех фигур MATLAB, в преамбуле основной функции я определил структурную переменную следующим образом:
var.font = 'Arial Unicode MS';
var.fontsize = 13;
var.interpreter = 'none' ;
и так далее для других полей. Когда я вызываю функцию таким образом (предоставляя структуру в качестве входных данных):
function plot1( var , ... )
fig = gcf
fig.Position(3) = var.Position3
fig.Position(4) = var.Position4
end
все работает отлично, и функции применяют функцию к каждой фигуре. Но если я попытаюсь предоставить переменное число входных данных для функций, использующих varargin, таким образом
function plot1( varargin )
fig = gcf;
temp = varargin(1);
fig.Position(3) = temp.Position3;
fig.Position(4) = temp.Position4;
end
Появится следующее сообщение об ошибке «Ссылка на содержимое структуры из объекта неструктурного массива».