【问题标题】:Create vector of inner vectors with elementwise subtracted elements for plotting (Matlab)使用按元素减去元素创建内部向量的向量以进行绘图(Matlab)
【发布时间】:2016-05-27 11:45:27
【问题描述】:

我正在运行一个程序,在每个时间循环中我都会获得一个N 暗淡。矢量v(t).

在程序结束时,我想获得一个向量(或数组?),其中包含来自每次迭代的向量,该迭代是通过获取 v(t) 的每个元素并减去所有其他元素而创建的。但是我只对元素的绝对差异感兴趣。

因此,如果我让u 表示在某个任意迭代中减去元素的向量,例如我想要u(1)(t_0) = v_1(t_0) - v_2(t_0),但对于某些索引k,我也不需要u(k) = v_2(t_0) - v_1(t_0)

在每次迭代 t 中,我还创建了一个时间向量 Time(end+1) = t

最后,我获得了一个向量向量:[u_1, u_2, u_3,...] 和一个时间向量 Time = [t_1 , t_2 , ...],我想在同一个图中针对所有 i 绘制 [u_1(i), u_2(i) , ...] 与时间。

这是一个小例子:

T = 400
dt = 1e-1
u = [];
Time = [];
v = [0; 0; 0; 0;];

for t = 0:dt:T
v = v + func(t)
Y = subtractFunc(v) % I am looking for help to create this subtractFunc..
Time(end+1) = t;
u(end+1) = Y;
end 

% ... And help to create the properplot command, below code not appropriate
plot(u,Time)

总结一下:如何创建subtractFunc(或一些内联命令)来创建一个新向量Y,其中包含v中每对元素之间的绝对差异?

然后我该如何着手并绘制u 中的所有差异与时间向量Time 的关系?

【问题讨论】:

  • 请加个小手算例
  • 现在应该更具可读性。

标签: matlab vector plot


【解决方案1】:

您可以使用 MATLAB diff 取两两差,然后取绝对值:

>> v = [1 3 6 -2 6];  %% random values
>> diff(v)
ans =
     2     3    -8     8
>> abs(diff(v))
ans =
     2     3     8     8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多