zu speichern Ich weiß, dass mehrere Varianten dieses Problems an anderer Stelle besprochen wurden, aber ich bin immer noch nicht in der Lage, das Problem zu lösen. Bitte helfen Sie.nicht in der Lage, Variable in Matlab Gui
Ich habe eine Funktion als Teil einer größeren GUI erstellt, aber ich kann nicht drei Datenvariablen (AveX, AveY, AveZ) für die spätere Verwendung von Guidata (hObject, Griffe) speichern. Was mache ich falsch? Hier
ist die Funktion:
%call all checkbox values
for i = 1:30
checkboxes=get(handles.(sprintf('checkboxAv%d',i)),'value')
Checkboxes(i,1)=checkboxes(1,1);
end
plotdata=handles.plotdata;
[row,col] = find(Checkboxes==1)
num=length(plotdata{1,1}(:,1));
DataY = zeros(num,length(row));%zero matrix
%Average y data
for k=1:length(row)
DataY(:,k)=plotdata{row(k,1),col(k,1)}(:,4);
end
[m,n] = size(DataY)
if (n==1)
AveY=DataY'
elseif (n>1)
AveY=mean(DataY');
end
AveY=AveY';
%Average X data
for kk=1:length(row)
DataX(:,kk)=plotdata{row(kk,1),col(kk,1)}(:,1);
end
test=DataX(:,1);
comp=any(bsxfun(@minus,DataX,test),1)
S = sum(comp)
if (S > 0)
h=msgbox(['Note! Wavelength index for the selected samples are not identical.'])
end
[c,r] = size(DataY)
if (r==1)
AveX=DataX'
elseif (r>1)
AveX=mean(DataX');
end
AveX=AveX';
%Average Z data
for kkk=1:length(row)
DataZ(:,kkk)=plotdata{row(kkk,1),col(kkk,1)}(:,5);
end
[m,n] = size(DataZ)
if (n==1)
AveZ=DataZ'
elseif (n>1)
AveZ=mean(DataZ');
end
AveZ=AveZ';
handles.Aveheader=Aveheader
handles.AveX=AveX;
handles.AveY=AveY;
handles.AveZ=AveZ;
guidata(hObject, handles);
Und hier ist die Fehlermeldung:
Undefined function or variable 'hObject'.
Error in CDanalyzer>AveragePlotFcn (line 5276)
guidata(hObject, handles);
Error in CDanalyzer>checkboxAv1_Callback (line 5076)
AveragePlotFcn(handles)
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in CDanalyzer (line 17)
gui_mainfcn(gui_State, varargin{:});
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)CDanalyzer('checkboxAv1_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
Was soll 'hObject' sein? Hast du es in 'AveragePlotFcn' weitergegeben? –
Hallo Jon. Hier enden meine Matlab-Fähigkeiten. Ich bin ein Neuling in Matlab GUI-Codierung. Der Grund, warum ich guidata (hObject, handles) verwende, ist, dass ich diese Befehlszeile verwendet habe, um Daten aus Drucktastenfunktionen zu speichern. Es könnte sein, dass ich falsch liege, aber zumindest hat es funktioniert. Aber nicht für meine "hausgemachte" Funktion. Ich möchte die Daten nur irgendwie speichern. –
Welches Objekt möchten Sie mit dieser Zeile speichern? Gibt es einen Handle-Namen, den Sie in einer anderen Funktion eingegeben haben? Vielleicht versuchen Sie 'gcbo' anstelle von' hObject', wenn es sich um eine lokale Callback-Funktion handelt. –