Как читать числа только в виде матрицы, игнорируя скобки в исходном файле? - PullRequest
0 голосов
/ 31 мая 2018

как читать числа только как матрицу из .txt в matlab этого формата Файл выглядит так:

[9.8 3.3 5.8 2.5]

[9.4 4.2 5.2 2.5]

[9,2 2,1 5,8 1,6]

[8,2 8,6 5,8 2,8]

[2,1 3,3 5,8 2,5]

Я хочу игнорировать скобки

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете указать формат вашего файла при использовании для чтения с полем Формат .

Из документации:

Формат столбца файла, указанный в виде разделенной запятыми пары, состоящей из «Формат» и символьного вектора или строки одного или нескольких спецификаторов преобразования.

В приведенном ниже коде мы указываем, чтотекстовые документы состоят из символа (первая квадратная скобка [), за которой следуют четыре числа с плавающей запятой, заканчивающиеся вторым символом (вторая квадратная скобка]).Спецификатор '% c ' используется для символов, спецификатор '% f ' для чисел с плавающей запятой.

В построенной таблице будет шесть столбцов, Var1 и Var6 содержатсимвол квадратной скобки, остальные четыре содержат фактические числовые данные.

Таким образом, результат получается путем объединения интересующих столбцов: Var2, Var3, Var4, Var5.

T = readtable('sample.txt','Format','%c%f%f%f%f%c','ReadVariableNames',false);
num = [T.Var2 T.Var3 T.Var4 T.Var5];

Вывод num - это матрица, которая вам требуется:

num =

9.8000    3.3000    5.8000    2.5000
9.4000    4.2000    5.2000    2.5000
9.2000    2.1000    5.8000    1.6000
8.2000    8.6000    5.8000    2.8000
2.1000    3.3000    5.8000    2.5000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...