我想在MATLAB中读取CSV文件并对数组进行切片。
CSV格式的同一文件的链接:https://easyupload.io/kku924
我在Python中使用以下代码阅读CSV文件:
import numpy as np
df = np.loadtxt(open("datafile.csv", "rb"), delimiter=",")
df的形状是(4,12)
输出:
array([[ 0. , -0.01809714, -0.030288 , 0.00723909, 0. ,
0.07616035, -0.00225021, 0.02599635, 0. , -0.00560653,
-0.03818442, 0.0650133 ],
[ 0.08148054, 0. , -0.01672672, -0.00293869, 0.08233277,
0. , 0.00140302, -0.0524725 , 0.0555664 , 0. ,
-0.00679785, -0.01236324],
[-0.00701317, 0.02287405, 0. , 0.10824596, -0.0822568 ,
-0.02795781, 0. , -0.08929713, -0.04435674, 0.06629118,
0. , 0.01483076],
[ 0.04419764, -0.01639843, 0.01021535, 0. , -0.07180185,
-0.01492615, 0.02212455, 0. , -0.01258146, -0.00941751,
0.00876711, 0. ]])
现在我可以做这些操作了:
sub_arr_1 = df[0:4, 0:4]
sub_arr_2 = df[:, 4:8]
sub_arr_3 = df[:, 8:12]
我想使用MATLAB读取相同的CSV文件,以便能够执行以下操作:
data = readtable('datafile.csv');
a1 = data(0:4,0:4)
a2 = data(:,4:8)
a3 = data(:,9:12)
但是我做不到。我们可以把CSV文件转换成.mat文件并做同样的事情吗?或者我们可以读取CSV文件并在MATLAB中对矩阵进行切片吗?
1条答案
按热度按时间c90pui9n1#
readtable
读取CSV文件并输出table
对象。这相当于Python中的PandasDataFrame
对象。相反,使用
readmatrix
,它读取CSV文件并输出一个普通的数字矩阵。