gpt4 book ai didi

matlab - 有没有办法解决在 Matlab 中绘图的这种最终效果?

转载 作者:行者123 更新时间:2023-12-04 05:54:13 24 4
gpt4 key购买 nike

enter image description here

 WaterFraction=[0.705 0.047 -0.15 -0.046 0.18 -0.070 -0.089 -0.0815 -0.0731 -0.08 ...
-0.43 -0.537 -0.543 -0.62 -0.548 -0.55 -0.33 -0.112 0.10 0.0590 ]
Radius=[ -1.25 -0.811 -0.448 -0.320 -0.384 -0.0923 0.168 0.1039 0.039 0.276 ...
-0.127 -0.137 -0.1088 -0.080 0.0220 0.049 2.34 4.58 6.84 -8.0]

当我按时间向量绘制数据向量时,当然两者大小相同,有时会发生这种情况,并且在视觉上令人不快。

我指的是从末端回到原点的直线。
最好的,
投标

最佳答案

根据您的情况,您有多种选择。您可以对数据进行排序以防止出现不连续性,也可以插入一些 NaN s 到 X 和 Y 向量。

  • 排序:
    [xSorted, ixsSort] = sort(x);
    ySorted = y(ixSort);
    plot(xSorted, ySorted);
  • 要添加 nan,您需要做一些额外的工作来确定应该在哪里中断,然后插入 NaN。例如,在第 10 个条目之后断行
    xBroken = [x(1:10) nan x(11:end)];
    yBroken = [y(1:10) nan y(11:end)];
    plot(xBroken, yBroken);

    编辑:有关更全面的示例,请参阅下面的示例代码。
  • 当然,作为一个简单的备份,只需做一个散点图而不是线图:
    plot(x, y, '.');


  • 下面方法 2 的一些示例代码:
    %Some sample data
    x = [1:10 2.1:11 3.2:12];
    y = randn(size(x));

    %Define where breaks are needed (and associated boundaries)
    ixsBreaksNeeded = find(diff(x)<0);
    ixsSegmentBoundaries = [0 ixsBreaksNeeded length(x)]; %This makes the iterations a lot easier

    %Predefine some nan vectors to move data into
    xBroken = nan(1, length(x) + length(ixsBreaksNeeded));
    yBroken = nan(1, length(x) + length(ixsBreaksNeeded));

    %Move data segments into nan vectors, leaving gaps between segments
    ixOffset = 0;
    for ix = 2:length(ixsSegmentBoundaries)
    ixsOriginal = (ixsSegmentBoundaries(ix-1)+1):ixsSegmentBoundaries(ix);
    xBroken(ixsOriginal + (ixOffset)) = x(ixsOriginal);
    yBroken(ixsOriginal + (ixOffset)) = y(ixsOriginal);
    ixOffset = ixOffset+1;
    end

    %Plot to demonstrate
    subplot(211)
    plot(x,y);
    subplot(212)
    plot(xBroken, yBroken)

    关于matlab - 有没有办法解决在 Matlab 中绘图的这种最终效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713787/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com