在MATLAB中将结构转换为double,同时从CSV文件阅读它

ryoqjall  于 2023-04-03  发布在  Matlab
关注(0)|答案(1)|浏览(210)

我想在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中对矩阵进行切片吗?

c90pui9n

c90pui9n1#

readtable读取CSV文件并输出table对象。这相当于Python中的Pandas DataFrame对象。
相反,使用readmatrix,它读取CSV文件并输出一个普通的数字矩阵。

相关问题