假设我在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]
答案 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