创建新的矩阵根据csv输入文件名

3视图(30天)
嗨。
我有一堆csv文件包含充电和放电数据,我想变成一个电荷分离矩阵和一个流量矩阵。
负责数据的文件夹中的文件名CYCLE0_CHG, CYCLE2_CHG, CYCLE4_CHG,等和放电数据的文件名是CYCLE1_DIS, CYCLE3_DIS, CYCLE5_DIS等等。
下面是我在将文件划分为两个变量的初始步骤根据文件名。
filepath = C: \ Kikusui测试\ 12 s2p自行车\ CH1_2023_3_6_14_32 ' ;
fileinfo1 = filepath (dir ( “_CHG.csv” ));
fileinfo2 = filepath (dir ( “_DIS.csv” ));
然而,我的错误“无法使用一个值类型的结构为一个索引”。

接受的答案

Stephen23
Stephen23 2023年3月22日
编辑:Stephen23 2023年3月22日
如果你想要这些文件名称分为字母数字顺序,那么你要么需要生成文件名(例如SPRINTF或类似)或DIR的输出:
P =C: \ Kikusui测试\ 12 s2p自行车\ CH1_2023_3_6_14_32 ';
C = dir (fullfile (P,“周期* _CHG.csv”));
D = dir (fullfile (P,“周期* _DIS.csv”));
C = natsortfiles (C);%下载://www.tianjin-qmedu.com/matlabcentral/fileexchange/47434-natural-order-filename-sort。
D = natsortfiles (D);%下载://www.tianjin-qmedu.com/matlabcentral/fileexchange/47434-natural-order-filename-sort。
k = 1:元素个数(C)
F = fullfile (P、C (k) . name);
C (k)。data = readmatrix (F);%或READTABLE等等。
结束
k = 1:元素个数(D)
F = fullfile (P、D (k) . name);
D (k)。data = readmatrix (F);%或READTABLE等等。
结束
可选的,如果兼容数组大小和类:
Cdata = vertcat (C.data);%收取
Ddata = vertcat (D.data);%放电
4评论
Stephen23
Stephen23 2023年3月22日
“你能澄清这条线是什么意思F = @ (m) m (:, 16:25);%从列16到25行。”
F是一个匿名函数的处理。匿名函数接受一个输入参数m(矩阵),并返回所有行列16到25的输入矩阵。
“@m只是一个anonymus功能,如果是这样,为什么我用?”
在我的代码@m并不存在。
我指定了匿名函数,这样我可以使用CELLFUN Ccell和Dcell处理所有细胞。作为替代,你可以使用一个FOR循环。
“我用上面的代码和收到以下错误:指数在位置2超出数组边界。指数不得超过1。”
然后一个(或更多)的矩阵只有一列,不是25列。MATLAB将抛出一个错误如果你问它25列从矩阵的内容只有一个列。

登录置评。

更多的答案(0)

标签

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!