【发布时间】:2025-12-20 08:05:12
【问题描述】:
所以我有一个值矩阵,行对应于数据集,我想使用 ListPlot 绘制每个值,但我希望 x 轴与索引不同。在matlab中我会:
x = 0:4;
ys = [10 20 40 80 160;
20 40 80 160 320;
30 60 120 240 480]';
plot(x,ys)
这将给出三行,x 值为 0-4,y 值为每列。
在 Mathematica 中我能想到的最接近的是
x = Range[0,4];
ys = {{10, 20, 40, 80, 160},
{20, 40, 80, 160, 320},
{30, 60, 120, 240, 480}};
ListPlot[Transpose[{x,#}]& /@ ys]
这是正确的方法吗?似乎有点神秘。希望有我缺少的功能或选项。
【问题讨论】:
-
一个小项目:您无需手动重新组合这些 y。以编程方式可以执行 Partition[ys,Length[x]]。同样对于 Leonid Shifrin 的 DateRange,可以使用 x[[{1,-1}]]。没什么大不了的,但是这些消除了一些手动工作。
-
是的,我的原始问题中的 ys 来自不同的计算......只是希望代码类似于 matlab :-) 感谢第一个和最后一个索引技巧!