pushbutton1的callback是这样的:
[b a]=uigetfile('*.xlsx');
A=xlsread(fullfile(a,b))
x=A(:,1);
y=A(:,2);
axes(handles.axes1);
plot(x,y)
xlabel('时间/ms')
ylabel('A');
title('电流波形');
handles.data=y;
guidata(hObject, handles);
运行后可以从电脑中选择csv文件并且画出波形图,
pushbutton2的callback是这样的
M=321;
fs=1000;
dt=1/fs;
n=0:M-1;
a=fft(x,M);
mag=2*abs(y)/M;
pha=angle(y);
f=n*fs/M;
axes(handles.axes3);
plot(f,mag);
axes(handles.axes4);
plot(f,pha);
运行后不能出现幅度谱和相位谱。求大神看一下哪里错误了?
程序就是这样的,pushbutton1是从电脑里读取csv文件的第一列第二列画出波形图,然后点击pushbutton2对他进行频谱分析,我不清楚要用什么代替那个原来的波形,可以用A吗?但是A代表的是那个矩阵数列。。比如说对一个信号x(t)=2sin(4πt)求频谱,可以用y=fft(x,N),因为是读取的数据所以不知道用什么代替
追答两种做法:
1、把读文件的代码在pushbutton2的callback中重复一遍:
[b a]=uigetfile('*.xlsx');2、在pushbutton1的callback代码的最后保存变量:
handles.datax=x;然后在pushbutton2代码的最前面获取:
handles = guidata(gcbf);