我正在将一些代码从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的索引编制而言)以及也许如何解决语法错误?
谢谢!
答案 0 :(得分:1)
在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
我希望这会有所帮助, 干杯, 西蒙