【发布时间】:2014-07-19 16:36:44
【问题描述】:
我想将以下组着色 octave 函数转换为 python 并将其与 pyplot 一起使用。
函数输入:
x - 数据矩阵 (m x n)
a - 一个参数。
index - 大小为“m”且值在 [:a] 范围内的向量
(例如,如果 a = 4,索引可以是 [random.choice(range(4)) for i in range(m)]
“index”中的值表示第“m”个数据点所属的组的编号。 该函数应绘制 x 中的所有数据点并将它们着色为不同的颜色(不同颜色的数量为“a”)。
倍频程函数:
p = hsv(a); % This is a x 3 metrix
colors = p(index, :); % ****This is m x 3 metrix****
scatter(X(:,1), X(:,2), 10, colors);
我在python中找不到像hsv这样的函数,所以我自己写了(我想我做到了..):
p = colors.hsv_to_rgb(numpy.column_stack((
numpy.linspace(0, 1, a), numpy.ones((a ,2)) )) )
但我不知道如何在 python (numpy) 中进行矩阵选择 p(index, :)。 特别是因为“index”的大小比“a”大。
提前感谢您的帮助。
【问题讨论】:
标签: python matlab numpy octave hsv