0

Matlabで次のコードを試しました:

function pushbutton5_Callback(hObject, eventdata, handles)

global smoothening_level;

global Amp_threshold;

global Min_PeakDistance;

global Mat_wave

global Mat_wave2

global Mat_inten

global pks

Mat_inten2 = smooth(Mat_inten,smoothening_level);

[pks,locs] = findpeaks(Mat_inten2,'minpeakdistance',Min_PeakDistance,'minpeakheight',Amp_threshold)

s = size(pks)

figure(1)

Mat_wave2 = Mat_wave(locs(:));

Mat_inten2loc = Mat_inten(locs(:));

hold all;

plot(Mat_wave,Mat_inten2);

plot(Mat_wave2,pks,'o','MarkerEdgeColor','r');

legend('Ouptut Spectrum','Smoothened Spectrum','Identified Peaks')

axis([350 900 0 max(Mat_inten)]);

xlabel('Wavelength')

ylabel('Intensity')

grid on

title('Plasma Emission Spectrum')

temp(:,1)=Mat_wave2;

temp(:,2)=Mat_inten2loc;

set(handles.uitable8,'Data',num2cell(temp))

ただし、次のエラーが発生しています。

??? Attempt to reference field of non-structure array.

Error in ==> GUI>pushbutton5_Callback at 242
set(handles.uitable8,'Data',num2cell(temp))

Error in ==> gui_mainfcn at 96
        feval(varargin{:});

Error in ==> GUI at 50
    gui_mainfcn(gui_State, varargin{:});

Error in ==> @(hObject,eventdata)GUI('pushbutton5_Callback',hObject,eventdata,guidata(hObject))

??? Error while evaluating uicontrol Callback
4

2 に答える 2

1

エラーは、それhandlesがタイプではないことを示していますstruct。したがって、アクセスできませんhandles.uitables8。ほとんどの場合、あなたが書きたいのは set(handles,'Data',num2cell(temp))'ですが、それは残りのコードを知らずに推測にすぎません。

于 2012-10-16T08:35:46.150 に答える
0

handles.uitable8が存在することを確認してください。これを行う最も簡単な方法は、242行目でコードにブレークポイントを設定することです。コードがデバッガーで停止したら、ワークスペースに移動してハンドル構造を開きます。

GUIDEを使用してこのGUIを作成した場合は、タグのラベルが間違っているか、類似している可能性があります。

于 2012-10-15T16:48:37.240 に答える