如何修复MATLAB代码中的错误?

时间:2017-04-21 12:40:56

标签: matlab matrix

我有一个简单的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); 

我将非常感谢你的帮助。

0 个答案:

没有答案