MATLAB求助啊!!Index exceeds matrix dimensions. 10
clear;clc;load156.mat;%内圈故障数据x=X156_DE_time;%驱动计数段的内圈故障fs=12000;%采样率N=10240;%采样点数(100...
clear;
clc;
load 156.mat;%内圈故障数据
x=X156_DE_time;%驱动计数段的内圈故障
fs=12000;%采样率
N=10240;%采样点数(100倍)
M=0;%采样数据段的起始位置
n=M:N-1;
t=n/fs;%信号时间序列
X=X156_DE_time(1:N);%装载 驱动计数端的内圈故障数据
%X=X156_FE_time(1:N);%装载 风扇计数端的内圈故障数据
%X=X156_BA_time(1:N);%装载 基础计数端的内圈故障数据
%X=X156_DE_time(1:N)-X156_BA_time(1:N);
y=X';%信号幅值序列
k_in=kurtosis(y);%峭度系数,正常轴承为3左右
figure;%画原始信号时域和频域图
subplot(211);plot(t,y);title('原始信号时域波形');
subplot(212);hua_fft(y,fs,1);title('原始信号频谱');
figure;%原始信号的包络谱
subplot(211);hua_baol(y,fs,1);title('原始信号包络谱');
subplot(212);hua_baol(y,fs,1,0,500);title('原始信号部分频段包络谱');
imf=emd1(y);%经验模态分解
figure;%前三个IMF分量
subplot(311);plot(t,imf(1,:));title('IMF1时域波形图');
subplot(312);plot(t,imf(2,:));title('IMF2时域波形图');
subplot(313);plot(t,imf(3,:));title('IMF3时域波形图');
figure;%前三个IMF分量频谱
subplot(311);hua_fft(imf(1,:),fs,1);title('IMF1频谱');
subplot(312);hua_fft(imf(2,:),fs,1);title('IMF2频谱');
subplot(313);hua_fft(imf(3,:),fs,1);title('IMF3频谱');
figure;%前三个IMF分量选择频段内的包络谱
xf1=0;%需要查看的包络谱频率段起点频率
xf2=1000;%需要查看的包络谱频率段终止频率
subplot(311);hua_baol(imf(1,:),fs,1,xf1,xf2);title('IMF1包络谱');
subplot(312);hua_baol(imf(2,:),fs,1,xf1,xf2);title('IMF2包络谱');
subplot(313);hua_baol(imf(3,:),fs,1,xf1,xf2);title('IMF3包络谱');
第一次报错:
plot
Conversion to double from cell is not possible.
把
subplot(311);plot(t,imf(1,:));title('IMF1时域波形图');
subplot(312);plot(t,imf(2,:));title('IMF2时域波形图');
subplot(313);plot(t,imf(3,:));title('IMF3时域波形图');
按找到的解决方案改成subplot(311);plot(t,imf{1,:})
又出现报错:
??? Index exceeds matrix dimensions.
小白啊,刚接触,求大神帮找找错误!! 展开
clc;
load 156.mat;%内圈故障数据
x=X156_DE_time;%驱动计数段的内圈故障
fs=12000;%采样率
N=10240;%采样点数(100倍)
M=0;%采样数据段的起始位置
n=M:N-1;
t=n/fs;%信号时间序列
X=X156_DE_time(1:N);%装载 驱动计数端的内圈故障数据
%X=X156_FE_time(1:N);%装载 风扇计数端的内圈故障数据
%X=X156_BA_time(1:N);%装载 基础计数端的内圈故障数据
%X=X156_DE_time(1:N)-X156_BA_time(1:N);
y=X';%信号幅值序列
k_in=kurtosis(y);%峭度系数,正常轴承为3左右
figure;%画原始信号时域和频域图
subplot(211);plot(t,y);title('原始信号时域波形');
subplot(212);hua_fft(y,fs,1);title('原始信号频谱');
figure;%原始信号的包络谱
subplot(211);hua_baol(y,fs,1);title('原始信号包络谱');
subplot(212);hua_baol(y,fs,1,0,500);title('原始信号部分频段包络谱');
imf=emd1(y);%经验模态分解
figure;%前三个IMF分量
subplot(311);plot(t,imf(1,:));title('IMF1时域波形图');
subplot(312);plot(t,imf(2,:));title('IMF2时域波形图');
subplot(313);plot(t,imf(3,:));title('IMF3时域波形图');
figure;%前三个IMF分量频谱
subplot(311);hua_fft(imf(1,:),fs,1);title('IMF1频谱');
subplot(312);hua_fft(imf(2,:),fs,1);title('IMF2频谱');
subplot(313);hua_fft(imf(3,:),fs,1);title('IMF3频谱');
figure;%前三个IMF分量选择频段内的包络谱
xf1=0;%需要查看的包络谱频率段起点频率
xf2=1000;%需要查看的包络谱频率段终止频率
subplot(311);hua_baol(imf(1,:),fs,1,xf1,xf2);title('IMF1包络谱');
subplot(312);hua_baol(imf(2,:),fs,1,xf1,xf2);title('IMF2包络谱');
subplot(313);hua_baol(imf(3,:),fs,1,xf1,xf2);title('IMF3包络谱');
第一次报错:
plot
Conversion to double from cell is not possible.
把
subplot(311);plot(t,imf(1,:));title('IMF1时域波形图');
subplot(312);plot(t,imf(2,:));title('IMF2时域波形图');
subplot(313);plot(t,imf(3,:));title('IMF3时域波形图');
按找到的解决方案改成subplot(311);plot(t,imf{1,:})
又出现报错:
??? Index exceeds matrix dimensions.
小白啊,刚接触,求大神帮找找错误!! 展开
3个回答
展开全部
2016-01-02
展开全部
出现这个错误一般都是在for循环中,或者在矩阵的赋值过程中,出现这个错误后你需要做以下工作:
一,查看矩阵A的维数,在MATLAB主窗口中输入size(A),查看矩阵的维数
二,检查你现在的赋值语句,或者循环迭代到错误出现时A(M,N)的角标,查看此时M/N是不是已经超出了A的维数范围。
一,查看矩阵A的维数,在MATLAB主窗口中输入size(A),查看矩阵的维数
二,检查你现在的赋值语句,或者循环迭代到错误出现时A(M,N)的角标,查看此时M/N是不是已经超出了A的维数范围。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
报错的原因和你的数据格式有很大关系,看看156.mat
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询