MATLAB编程做电机轴承故障诊断遇见cell元组的问题
MATLAB编程做电机轴承故障诊断遇见cell元组的问题编写程序的主要思路是:
1.同时输入四个样本数据,同时分成40个小样本每个小样本2048个数据
2.对每个小样本进行EWT变换,得到IMF分量
之前一直是取得一个小样本对算法进行验证,对小样本的2048个数据的EWT变换基本以实现。现在想把40个小样本同时进行EWT变换,却遇见了问题。
程序:
for i=1:40
f(i)=(f(i)-mean(f(i)))/std(f(i),1);%对 sig 进行归一化
=EWT1D(f(i),params);
end
错误提示:
需要大括号或点索引表达式中的一个输出,但结果有 0 个。
出错 Test_EWT1D (line 108)
=EWT1D(f(i),params);
在用一个小样本进行测试时使用的程序是:
% f=(f-mean(f))/std(f,1);%对 sig 进行归一化
% =EWT1D(f,params);
返回:
ewt为 91cell
mfb为91cell
boundaries为 矩阵
不知道应该如何修改改程序,还望各位指点12!
第二句应该改成这个,f(i,:)=(f(i,:)-mean(f(i,:)))/std(f(i,:),1);%对 sig 进行归一化。 但还是不对的啊 望各位指点 又出现这个问题:串联的矩阵的维度不一致。出错 EWT1D (line 58) f=; 现在改成了这个样子,但赋值好像有点问题 for i=1:40
f(:,i)=(f(:,i)-mean(f(:,i)))/std(f(:,i),1);%对 sig 进行归一化
=EWT1D(f(:,i),params);
ewt{i,1}=ewt;
mfb{i,1}=mfb;
boundaries(:,i)=boundaries;
end 改成了这个样子,就可以运行了。发现之前在对ewt等进行赋值的时候,ewt被反复的赋值,又被不停的覆盖,所以导致赋值语句错误
for i=1:40
f(:,i)=(f(:,i)-mean(f(:,i)))/std(f(:,i),1);%对 sig 进行归一化
=EWT1D(f(:,i),params);
if Fuzzy_entropy==1
fuzzye= show_Fuzzyentropy(ew);
end
ewt{1,i}=ew;
mfb{1,i}=mf;
boundaries{i}=boundarie;
fuzzyen{i}=fuzzye;
end
页:
[1]