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.

小白啊,刚接触,求大神帮找找错误!!
展开
 我来答
生活知识小超人
高粉答主

2020-05-21 · 醉心答题,欢迎关注
知道答主
回答量:2078
采纳率:50%
帮助的人:91.9万
展开全部

MATLAB 中 Index exceeds matrix dimensions错误,是代码错误造成的,解决方法如下:

1、启动MATLAB,新建脚本(Ctrl+N),输入以下代码。

2、保存和运行上述脚本,弹出错误对话框。错误信息为:这是默认错误字符串(this is the default error string)。对话框名字为:错误对话框(error dialog)。

3、接着输入以下脚本,如下图所示。

4、保存和运行上述增加后的脚本,弹出3个错误对话框,如下图。

5、这里只有设置为modal的错误对话框点击“确定(OK)”或者×掉之后,另外两个错误对话框才可以移动或者点击确定(OK)等操作。

匿名用户
2016-01-02
展开全部
  出现这个错误一般都是在for循环中,或者在矩阵的赋值过程中,出现这个错误后你需要做以下工作:
  一,查看矩阵A的维数,在MATLAB主窗口中输入size(A),查看矩阵的维数
  二,检查你现在的赋值语句,或者循环迭代到错误出现时A(M,N)的角标,查看此时M/N是不是已经超出了A的维数范围。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jimtien
2015-12-25 · TA获得超过7654个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1116万
展开全部
报错的原因和你的数据格式有很大关系,看看156.mat
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式