В Matlab я сохранял каждую строку, которую построил, так:
app.cplxPlot(app.cplxPlotNumber)= plot(app.UIAxes[app.var.cplx(1);app.var.cplx(1)],[50;250], 'g');
Чтобы сделать вещи общими, это как если бы я сделал это:
cplxPlot(location)=plot(app.UIAxes,[cplxPlot(1);cplxPlot(1)],[50;250],'g');
Это в основном хранит кучу вертикальных линий. Я хочу теперь удалить строку с определенным значением х. В командной строке matlab я сделал этот простой цикл if, чтобы увидеть, имеет ли мой первый график значение x, равное 20, и это сработало.
if length(find(cplx1Plot(1).XData==value,1,'first'))==1
disp('wow')
end
Но в конструкторе приложений тот же код:
if length(find(app.cplx1Plot(1).XData==value,1,'first'))==1
app.Label.Text='wow'
end
будет отображать ошибку: «Индексирование точек не поддерживается для переменных этого типа». Может кто-нибудь сказать мне, что я делаю не так? Он отлично работал в сценарии Matlab, но не в дизайнере приложений, и я не уверен, почему.
Продолжение: я только что использовал функцию класса, и, очевидно, мой вектор хранит двойники в приложении-дизайнере, но он хранит класс в обычном matlab ... Я понятия не имею, почему элементы в векторе будут двойными .
Follow 2.0: очевидно, если я получу доступ к свойству для хранения строки, оно будет сохранено как двойное, но если я выберу вместо этого локальную переменную, это будет строка. Мне нужно, чтобы это было свойство / глобальная переменная, и я не понимаю, почему в мире она будет храниться как двойная ...
Например, для бобов в этом сценарии удваивается:
bob(1)= plot([.005;.005],[100;200],'g')
app.Label.Text=string(class(bob(1)));
Но боб магазины удваиваются в этом:
app.bob(1)= plot([.005;.005],[100;200],'g')
app.Label.Text=string(class(app.bob(1)));
Для контекста я объявил bob в моих свойствах так:
bob