Как установить конечные пределы для csvread? - PullRequest
0 голосов
/ 15 января 2019

Допустим, у меня есть данные в CSV-файле [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15] Допустим, я не хочу первый или последний столбцы или первую строку в данных. Как мне выборочно нарисовать это с помощью csvread ()?

Я пытался повозиться с установкой границ, но csv, похоже, разрешает только начальную точку, из которой он будет рисовать до бесконечности строки / столбца.

Идеальным результатом было бы как-то получить матрицу, которая [2,3,4; 7,8,9; 12,13,14]

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Документация для csvread точна, но сбивает с толку и несколько нестандартна для matlab. Основной синтаксис:

a = csvread(filename)

А если вы хотите указать диапазон, вы можете использовать:

a = csvread(filename,R1,C1,[R1 C1 R2 C2])

где R и C - интересующие строки и столбцы. Хитрость заключается в том, что значения строки и столбца имеют нулевой индекс , что необычно для matlab. Также обратите внимание, что если вы указываете диапазон для чтения, первые компоненты аргумента массива совпадают с остальными аргументами.

Например, рассмотрим файл «test.csv», который выглядит следующим образом:

1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4

Основная операция чтения:

>> a = csvread('testcsv.csv')

a =

 1     2     3     4
 1     2     3     4
 1     2     3     4
 1     2     3     4

Если вы хотите начать чтение со столбца 2, укажите строку 0 и столбец 1 :

>> a = csvread('testcsv.csv',0,1)

a =

 2     3     4
 2     3     4
 2     3     4
 2     3     4

И если вы хотите остановиться после 3-го столбца при включении всех строк (т.е. до 4-й строки):

>> a = csvread('testcsv.csv',0,1,[0 1 3 2])

a =

 2     3
 2     3
 2     3
 2     3

В вашем конкретном случае:

>> a = csvread('testcsv2.csv')

a =

 1     2     3     4     5
 6     7     8     9    10
11    12    13    14    15

>> a = csvread('testcsv2.csv',1,1,[1 1 2 3])

a =

 7     8     9
12    13    14
0 голосов
/ 15 января 2019

Пожалуйста, обратитесь к этой документации на csvread : https://www.mathworks.com/help/matlab/ref/csvread.html

На странице вы можете увидеть различные реализации csvread (), такие как

M = csvread(filename,R1,C1)

, где R1 - смещение строки, а C1 - смещение столбца. Вероятно, вы можете попытаться обойти это и решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...