如何在输入中没有零的情况下绘制我的数据

时间:2014-09-30 09:49:16

标签: matlab plot

我有一些包含0 0行的大数据数组 我想在没有他们的情况下打印我的情节,怎么样? 阵列看起来像 (它的部分或(100000:2:2:N)数组只能这些行) A(:,:,1,5):

    12 60
    12.1 80
    12.2 75
    0 0
    0 0
    0 0

THX

ps现在我用情节绘图(A(:,1,1,5),A(:,2,1,5));我如何将它们绘制成具有不同长度对的散射(点)

很多

3 个答案:

答案 0 :(得分:1)

怎么样:

zero_ind = any(A(:,:,1,5), 2);   %// You might need to call squeeze here depending on the dimensions
plot(A(zero_ind,1,1,5),A(zero_ind,2,1,5)); 

答案 1 :(得分:1)

plot()将忽略NaN的任何输入,因此假设数字中的“0”不是有效值,请将所有零替换为NaN

例如,以下代码仅显示10个点中的7个:

>> x = 10*rand(1,10);
>> y = 10*rand(1,10);
>> x([1,5,6])= 0;
>> x(x == 0) = NaN;
>> y(y == 0) = NaN;
>> plot(x,y,'.');

答案 2 :(得分:0)

我假设您只想删除两个列等于0的行。你能做的是以下几点:

A(sum(A==0,2)==2,:)=NaN;

解释:它创建一个逻辑数组,其中A的任何元素都等于0。然后它沿着列总和。如果两列都等于0,则总和将为2.然后将NaN替换为plot函数将忽略的所有内容。

然后绘制:

plot(A(:,1), A(:,2))