matlab如何将两列数数列中的NAN去掉
matlab是一个非常强大的数据分析处理工具,当你遇到一个数组中包含有空值NAN时,你如何将其及其整行去掉呢?小生带你解决这个问题。
设置一个含空NAN数组,代码:
test=[1;2;3;nan;5;nan;7];
将其中的空值nan去掉:
test(isnan(test(:,1))==1)=[];
test_2=test;
将其中的空值nan用0代替,代码:
test(isnan(test(:,1))==1)=0;
test_3=test;
将其用上一个数值代替,代码:
for i=1:7 if isnan(test(i,1))==1 test(i,1)=test(i-1,1); endendtest_4=test;
for i=1:7 if isnan(test(i,1))==1 test(i,1)=test(i-1,1); endendtest_4=test;
for i=1:7 if isnan(test(i,1))==1 test(i,1)=test(i-1,1); endendtest_4=test;
for i=1:7 if isnan(test(i,1))==1 test(i,1)=test(i-1,1); endendtest_4=test;
for i=1:7
if isnan(test(i,1))==1 test(i,1)=test(i-1,1); endendtest_4=test;
if isnan(test(i,1))==1
test(i,1)=test(i-1,1); endendtest_4=test;
test(i,1)=test(i-1,1);
endendtest_4=test;
end
endtest_4=test;
end
test_4=test;
如果是多位数组如何处理呢?这里设置一个7*2的数组,代码:
test_1=[1,1;2,2;3,3;nan,nan;5,5;nan,nan;7,7];
多维数组将其含空值nan的整行数组全部去掉,代码:
test_5=test_1(:,1).*test_1(:,2)for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
test_5=test_1(:,1).*test_1(:,2)for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
test_5=test_1(:,1).*test_1(:,2)for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
test_5=test_1(:,1).*test_1(:,2)for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
test_5=test_1(:,1).*test_1(:,2)
for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
for i=7:-1:1 if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
for i=7:-1:1
if isnan(test_5(i,1))==1 test_1(i,:)=[]; endendtest_1
if isnan(test_5(i,1))==1
test_1(i,:)=[]; endendtest_1
test_1(i,:)=[];
endendtest_1
end
endtest_1
end
test_1
test_1
版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/answer/173384.html