problem with IF ELSE in push button GUI
显示 更早的评论
hi
i'm trying to creat a gui. i'm stuck in a push button
function dft_pushbutton2_Callback(hObject, eventdata, handles)
if handles.current_data==handles.JEEP
filename='jeep1.wav';
else filename='bmwsuv1.wav';
end
[x sr1] = wavread(filename);
J = fft(x(1:1024));
f1 = linspace(0, sr1, length(J));
plot(f1(1:end/2+1), abs(J(1:end/2+1)))
what is wrong here ??? i'm not getting it..help
the problem is the else part doesn't work. if i swap only one works. i've a pop up menu with BMW and JEEP.push button for plotting signal works but push button for dft plotting doesn't.
3 个评论
Akshaya
2013-1-24
Image Analyst
2013-1-25
You have
handles.current_data=handles.BMW;
and you had:
handles.BMW=b;
which means handles.BMW and handles.current_data are both numerical arrays. So how could handles.current_data ever equal a string 'BMW'? One's a double array, and ones a character array.
Walter Roberson
2013-1-25
And also the code has two statements,
handles.current_data=handles.BMW;
handles.current_data=handles.JEEP;
so handles.current_data would be overwritten after being set to BMW
回答(1 个)
Image Analyst
2013-1-24
0 个投票
What are handles.current_data, and handles.JEEP? Are those integer values you assigned? floating point numbers you assigned? strings you assigned? or tag properties of controls in your GUI? It matters. If they're strings you need to compare with strcmpi(). If they're numbers (even handles), we need to know how they were assigned.
类别
在 帮助中心 和 File Exchange 中查找有关 Language Support 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!