【问题标题】:Matlab: plot is only graphing last value in vectorMatlab:绘图仅绘制向量中的最后一个值
【发布时间】:2015-06-22 15:58:44
【问题描述】:

我需要以下代码来绘制 C(i) 值与 x 值的范围。所以根据 x = 1 处的代码,我需要 C(1),x = 2,C(2) 等等......一个简单的问题我确定,请帮忙!

clear all; clc;
n = 15
x = 1:(n-1)
T = 500;
D = T./(n-x)

for i=1:13
C(i) = D(i+1) - D(i)
end

plot(x, C(i), 'rx')

【问题讨论】:

    标签: matlab for-loop vector plot


    【解决方案1】:

    我猜你想要的是这个,

    clear 
    clc
    close all
    
    n = 15;
    x = 1:(n-1);
    T = 500;
    D = T./(n-x);
    
    C = zeros(length(x) - 1, 1);
    
    for i=1:13
        C(i) = D(i+1) - D(i);
    end
    
    figure, plot(C, 'rx')
    

    最好预先分配C变量,这样你就可以绘制它了。

    C(i) 只给了你最后一个数字,因为在i 是 13 和 C(i) 之后,你只给了你在第 13 位的 C

    【讨论】:

      【解决方案2】:

      变化:

      plot(x, C(i), 'rx')
      

      收件人:

      plot(x(1:end-1), C, 'rx')
      

      实际上,您可以将 for 循环替换为:

      C = diff(D);
      

      计算连续元素之间的差异。

      【讨论】:

      • 直到现在我才看到您正在计算连续值之间的差异。我将编辑我的答案。
      • 很高兴我能帮上忙! :) 我已经编辑了我的答案,为您提供了 for 循环的替代方案。
      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      相关资源
      最近更新 更多