我正在将Matlab中的一些代码翻译成Python。就理解这段Matlab代码而言,我有点困惑:
plot(m_true(1,[1:p 1]), m_true(2,[1:p 1]),'*', 'Color',[0 0 0])
当我尝试将它翻译成Python时,它看起来像这样:
plot(m_true[1,(1:p, 1)], m_true[2,(1:p 1)],'*', 'Color',[0, 0, 0])
冒号会导致语法错误。有Matlab绘图经验的人(我是这个语言的新手)可以解释matlab的语法(就1:p的索引所做的而言),以及如何修复语法错误?
谢谢!
发布于 2018-08-02 03:27:00
在Matlab中,冒号运算符描述容器的两个值n和m之间的范围。
例如,给定一个向量x = {4,2,67,2,5,26}
,下面的表达式采用从3到6的值,并将它们保存在向量y中:
y = x(3:6)
导致y的值如下:
67 2 5 26
它的另一个用途是索引矩阵的一个维度的所有元素:
x = rand(5,5)
x(:,1) = 1
将用以下内容填充矩阵m的第一列:
1.0000 0.9649 0.8003 0.9595 0.6787
1.0000 0.1576 0.1419 0.6557 0.7577
1.0000 0.9706 0.4218 0.0357 0.7431
1.0000 0.9572 0.9157 0.8491 0.3922
1.0000 0.4854 0.7922 0.9340 0.6555
以下是您的绘图函数的简化版本:
plot(m(1,[1:3 1]),'*', 'Color',[0 0 0])
它绘制x第一行的值1到3,然后是第一个值(由方括号中的空格表示),输出图如下所示:
将绘图更改为
plot(x(1,[3:4 1]),'*')
(为了更好地比较,这里放弃了着色)将绘制索引3和4处的值,以及索引1处的附加值,如下所示:
至于python中的导入,您可能必须使用本文中描述的"range“:Python Equivalent of MATLAB's colon operator
我希望这对你有帮助,干杯,西蒙
https://stackoverflow.com/questions/51639563
复制相似问题