【问题标题】:matlab gui make array publicmatlab gui使数组公开
【发布时间】:2011-12-18 02:51:21
【问题描述】:

在我的一个回调中,我加载了一个 wav 文件,然后将其绘制在轴上。 在另一个回调中,我尝试播放 wav 文件,但它不工作。 请帮忙,我怎么玩??

function btnload_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.wav','Select Data File');
[y,fs] = wavread([pathname filename]);
axes(handles.axes1)
plot(y);
title('ORIGINAL AUDIO SIGNAL');
ylabel('t');
guidata(hObject, handles); %updates the handles




function btnplay1_Callback(hObject, eventdata, handles)
soundsc(y,fs); 

【问题讨论】:

    标签: arrays user-interface matlab matlab-guide


    【解决方案1】:

    如果您需要在 GUIDE 生成的 GUI 中维护 application data,一种方法是使用传递给所有回调函数的 handles 结构:

    function btnload_Callback(hObject, eventdata, handles)
        %# read WAV file
        [filename, pathname] = uigetfile('*.wav','Select Data File');
        [y,fs] = wavread([pathname filename]);
    
        %# plot wave
        axes(handles.axes1)
        plot(y);
        title('ORIGINAL AUDIO SIGNAL');
        ylabel('t');
    
        %# save it to handles structure
        handles.y = y;
        handles.fs = fs;
        guidata(hObject, handles);      %# updates the handles
    end
    
    function btnplay1_Callback(hObject, eventdata, handles)
        %# retrieve the wave data, and play the sound
        soundsc(handles.y, handles.fs);
    end
    

    【讨论】:

      猜你喜欢
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2013-06-06
      相关资源
      最近更新 更多