我在通過Arduino發送的串行信息閱讀信息。這是正在讀一些示例數據:從Arduino到Python陣列的字符串列表
4
1
5
2
15
1
作爲一個以前的MATLAB用戶,我只是將能夠複製的值,因此像
a = PASTE
得到的值的矢量。有沒有類似的方式來獲取在Python終端中的int數組或矩陣中的所有值(使用numpy和matplotlib進行進一步繪圖)?
感謝您的幫助。
我在通過Arduino發送的串行信息閱讀信息。這是正在讀一些示例數據:從Arduino到Python陣列的字符串列表
4
1
5
2
15
1
作爲一個以前的MATLAB用戶,我只是將能夠複製的值,因此像
a = PASTE
得到的值的矢量。有沒有類似的方式來獲取在Python終端中的int數組或矩陣中的所有值(使用numpy和matplotlib進行進一步繪圖)?
感謝您的幫助。
基本上,這個工程在Matlab因爲空間用於單獨項目的順序,和Matlab會讓你使用換行符代替空格。換句話說,你可以這樣做x = [1 2 3]
在Python中,用逗號代替。換句話說,你需要做x = [1, 2, 3]
。
Python將讓你在一個表達式換行,如果你打開一個括號/支架等。例如,你可以這樣做:
In [1]: x = [1,
...: 2,
...: 3,
...: 4]
In [2]: x
Out[2]: [1, 2, 3, 4]
...但你仍然需要它的逗號成爲有效的語法。
如果您想使用換行符作爲序列的分隔符(您大概已將其複製到剪貼板),則需要在新行上明確拆分字符串。
要啓動多行字符串,請使用三引號。 ("""
或'''
)
例如:(我已經輸入x = """
然後打糊(如<ctrl>-v
/<shift>-<ins>
/其他))
In [1]: x = """4
...: 1
...: 5
...: 2
...: 15
...: 1"""
In [2]: x
Out[2]: '4\n1\n5\n2\n15\n1'
In [3]: x.split()
Out[3]: ['4', '1', '5', '2', '15', '1']
In [4]: import numpy as np
In [5]: np.array(x.split(), dtype=float)
Out[5]: array([ 4., 1., 5., 2., 15., 1.])
而且,@HYRY提到的,如果你使用ipython
,它會做的
In [1]: x = """4
...: 1
...: 5
...: 2
...: 15
...: 1"""
In [2]: x = x.split()
相當於只需:
In [1]: %paste x
更好的是,如果你從串口讀取數據,直接讀入python。看看pyserial
:http://pyserial.sourceforge.net/
請詳細說明'a = PASTE'? – Dan
對不起。我的意思是我可以將數據(如圖所示)複製到MATLAB中,例如「a = PASTECOMMAND」。當然,在MATLAB中,這將使矢量由數據組成。 – intl
我想你會輸入'a = ['然後粘貼然後輸入']'然後按回車?所以我相信你可以用Python做到這一點?你在用什麼Python IDE? – Dan