我有一个简单的MATLAB代码,有一些错误。请帮我解决问题。
我有一个大小为10000 x 1
的矩阵。首先,我重塑为大小为100 x 100
的矩阵,然后使用for
循环在新矩阵的每个100
列上执行一些过程。程序是:
首先我删除元素开头和结尾的10%
,然后绘制81个剩余元素的直方图,然后拟合7阶多项式,然后将E(:,i)
中的每个元素放入P' s函数获取新元素,然后将它们放在新矩阵(E_prim)的列中。循环结束后,最后使用新元素将它们重新整形为10000 x 1
矩阵。
我的问题是:
它不允许我剪切元素的开头和结尾,因为它在每次循环迭代时都会改变大小。
即使我放下这行代码,它也会显示p的NAN(不是数字)。 我该怎么做才能解决这些问题?
这是我的实际代码:
clear
clc
E_size = 10000;
n_bins = sqrt(E_size);
E_prim = zeros (100,100);
E = rand(10000,1);
E1 = reshape(E, 100, 100);
for i = 1 : 100
N=numel(E1(:,i));
E2(:,i)= E1(:,i)(round(.1*N):end-round(.1*N));
figure
hist(E1(:,i),n_bins)
[A,n_bins1]=hist(E1(:,i),n_bins);
n_bins2= repelem(A, n_bins1);
p = polyfit(n_bins2,E1(:,i),7);
e1 = polyval(p,E1(:,i));
E_prim (:,i)=e1;
end
e = reshape(E_prim, 10000, 1);
我将非常感谢你的帮助。