matlab中Index exceeds matrix dimensionsclear; close all; clc;load data0.matx=b(:,1);y=b(:,2);n1=17; %中值滤波窗口n2=15;y1 =[y;y(1:n1)];[m,n] = size(y);out =[];s = [];for i=1:m*ns=sort(y1(i:i+n1-1));out(i)=mean(s(i+1:i+n1-2));endy2=out;subplot(
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 06:37:47
![matlab中Index exceeds matrix dimensionsclear; close all; clc;load data0.matx=b(:,1);y=b(:,2);n1=17; %中值滤波窗口n2=15;y1 =[y;y(1:n1)];[m,n] = size(y);out =[];s = [];for i=1:m*ns=sort(y1(i:i+n1-1));out(i)=mean(s(i+1:i+n1-2));endy2=out;subplot(](/uploads/image/z/9119932-52-2.jpg?t=matlab%E4%B8%ADIndex+exceeds+matrix+dimensionsclear%3B+close+all%3B+clc%3Bload+data0.matx%3Db%28%3A%2C1%29%3By%3Db%28%3A%2C2%29%3Bn1%3D17%3B+%25%E4%B8%AD%E5%80%BC%E6%BB%A4%E6%B3%A2%E7%AA%97%E5%8F%A3n2%3D15%3By1+%3D%5By%3By%281%3An1%29%5D%3B%5Bm%2Cn%5D+%3D+size%28y%29%3Bout+%3D%5B%5D%3Bs+%3D+%5B%5D%3Bfor+i%3D1%3Am%2Ans%3Dsort%28y1%28i%3Ai%2Bn1-1%29%29%3Bout%28i%29%3Dmean%28s%28i%2B1%3Ai%2Bn1-2%29%29%3Bendy2%3Dout%3Bsubplot%28)
matlab中Index exceeds matrix dimensionsclear; close all; clc;load data0.matx=b(:,1);y=b(:,2);n1=17; %中值滤波窗口n2=15;y1 =[y;y(1:n1)];[m,n] = size(y);out =[];s = [];for i=1:m*ns=sort(y1(i:i+n1-1));out(i)=mean(s(i+1:i+n1-2));endy2=out;subplot(
matlab中Index exceeds matrix dimensions
clear; close all; clc;
load data0.mat
x=b(:,1);
y=b(:,2);
n1=17; %中值滤波窗口
n2=15;
y1 =[y;y(1:n1)];
[m,n] = size(y);
out =[];
s = [];
for i=1:m*n
s=sort(y1(i:i+n1-1));
out(i)=mean(s(i+1:i+n1-2));
end
y2=out;
subplot(2,2,1);
plot(x,y);
xlabel('t/s');ylabel('电压幅值/v');
title('滤波前波形');
subplot(2,2,2);
plot(x,y2);
xlabel('t/s');ylabel('电压幅值/v');
title('中位平均滤波');
axis([-0.05 0.05,2.2,3.2]);
grid on;
程序中data0为一个含有2500个数据的数组,
其中报错如下:
Index exceeds matrix dimensions.
Error in ==> middlefilter at 13
out(i)=mean(s(i+1:i+n1-2));
谁知道为什么吗,怎么修改
matlab中Index exceeds matrix dimensionsclear; close all; clc;load data0.matx=b(:,1);y=b(:,2);n1=17; %中值滤波窗口n2=15;y1 =[y;y(1:n1)];[m,n] = size(y);out =[];s = [];for i=1:m*ns=sort(y1(i:i+n1-1));out(i)=mean(s(i+1:i+n1-2));endy2=out;subplot(
试着写了一个,LZ试试看行不行:
clear
clc
x = 1:2500;
y = randn(1,2500);
n=17; %中值滤波窗口
for i = 1:length(y)-n+1
yy = y(i:i+n-1);
out(i) = mean(yy(~((yy == min(yy))|(yy == max(yy)))));
end
subplot(2,1,1);
plot(x,y);
subplot(2,1,2);
outx = x(1:length(y)-n+1);
plot(outx,out);