在Matplotlib中打印时出现语法错误

2024-04-19 00:57:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一些代码从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的索引是怎么做的)吗?也许还能解释一下如何修复语法错误?你知道吗

谢谢!你知道吗


Tags: 代码语言true绘图plot语法经验color
1条回答
网友
1楼 · 发布于 2024-04-19 00:57:08

在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(m(1,[1:3 1]),'*', 'Color',[0 0 0])

将绘图更改为

plot(x(1,[3:4 1]),'*')

(为了更好的比较,这里去掉了颜色) 将索引3和4处的值与索引1处的附加值绘制如下:

new values in yellow

至于python中的导入,您可能必须使用本文中描述的“range”: Python Equivalent of MATLAB's colon operator

我希望这有帮助, 干杯, 西蒙

相关问题 更多 >