如何设置csvread的结束限制?

时间:2019-01-15 17:52:39

标签: matlab csv

假设我在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 :(得分:0)

请参考 csvread 上的此文档: https://www.mathworks.com/help/matlab/ref/csvread.html

在页面中,您可以看到csvread()的各种实现,例如

M = csvread(filename,R1,C1)

其中R1是行偏移量,C1是列偏移量。您可能可以尝试解决此问题并解决问题。

答案 1 :(得分:0)

csvread的documentation准确但令人困惑,对于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

如果要在包含所有行(即直到第4行)的同时在第3列之后停止:

>> 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