我有一个矩阵X,其尺寸为1000 * 16001。我想要排除此矩阵中大于或等于1或小于或小于-1的任何值。然后计算第二维的方差。我的代码是
[L,K]=size(X);
for n=1:K
for m=1:L
if (X(m,n)>=1 || X(m,n)<=-1)
X(m,n)=NaN;
end
varx=var(X(:,n),1,1,'omitnan');
end
end
然后绘制方差。
plot(T,varx','k','linewidth',2)
其中T是尺寸为16001 * 1的时间。但是我收到了这个错误
Too many input arguments
varx=var(X(:,n),1,1,'omitnan');
如何修复此错误并绘制时间T的差异。非常感谢您的帮助。
答案 0 :(得分:1)
以下内容应删除大于1或小于-1的所有值:
Xnew = X;
Xnew(X > 1 | X < -1) = NaN;
接下来,可以使用以下方法计算每行的方差:
varx = var(Xnew,[],2,'omitnan’)
那么情节对你来说应该不是问题:
plot(T,varx,'k','linewidth',2)