我試圖讀取包含不同(但已知)大小的多個數組的文本文件。讀取具有多個分隔符和不同長度的矩陣的文本文件
我知道以下有關的文件:
每個文件有大小爲m×n的矩陣,在格式如在這個例子中:
[[0.05,0.15,0.25,0.35,0.0]
[0.05,0.1,0.15,0.2,0.25],
[0.05,0.1,0.15,0.2,0.25],
[0.05,0.1,0.5,0.6,0.1]]
這之後是尺寸PX 1的矩陣:
[3,3,4,5,5,5,5,6]
最後一個標量(無方括號在這裏)
3
我發現這樣做的最簡單方法如下:(!使用MATLAB相比更合適的語言)
- 條從文本文件中的括號
- 使用
data = importdata()
讀取文件。這導致在一個陣列中,用含有PX 1矩陣和所述標量(具有因爲矩陣大小之間的差的一些的NaN) - 拉出數據的最後兩行,
A = data(1:m, 1:n); b = data(m+1,1:p); c = data(m+2,1);
這似乎相當笨重。我可以將2維矩陣(包括括號)複製並粘貼到MATLAB命令窗口中,MATLAB知道如何解析它。這讓我覺得有一個更優雅的方法可以用一個MATLAB函數來完成這個任務。
整個例如文本文件:
[[0.05,0.15,0.25,0.35,0.0],
[0.05,0.1,0.15,0.2,0.25],
[0.05,0.1,0.15,0.2,0.25],
[0.05,0.1,0.5,0.6,0.1]]
[3,3,4,5,5,5,5,6]
3
你的第一行有4個元素;接下來的三個有五個。我爲本地示例的第一行添加了0.0。 – Pursuit
您使用哪種「比MATLAB更適合的語言(用於文本處理)」?它有MEX支持嗎? –
FWIW,可以使用''regexprep(str,'[\ [\]]','')'從Matlab中的字符串中去除'[',']'。另見'strrep'。 – Pursuit