Matlab 同时导入多个文件时出错

Matlab 同时导入多个文件时出错,matlab,Matlab,尝试在矩阵中使用特定后缀连接不同的文件,但我总是获得一个矩阵,该矩阵具有唯一的行,其中包含最后一个文件的值 举例来说 我有多个文件,如: 2302_Cabeza_L_x.txt, 2202_Cabeza_L_x.txt, 1702_Cabeza_L_y.txt..... 我正在使用的代码 codes= [2302,2202,1602,1502,1702]; for p=1:length(codes) name=mat2str(codes(:,p)); orden2=(name(

尝试在矩阵中使用特定后缀连接不同的文件,但我总是获得一个矩阵,该矩阵具有唯一的行,其中包含最后一个文件的值

举例来说

我有多个文件,如:

2302_Cabeza_L_x.txt, 2202_Cabeza_L_x.txt, 1702_Cabeza_L_y.txt..... 
我正在使用的代码

codes= [2302,2202,1602,1502,1702];

for p=1:length(codes)

name=mat2str(codes(:,p));

    orden2=(name(2:length(name)-11));
    orden=str2num(orden2);

allCABLX = importdata([name '_Cabeza_L_x.txt']);
allCABLY = importdata([name '_Cabeza_L_y.txt']);
allCABCY = importdata([name '_Cabeza_C_y.txt']);
allCABCX = importdata([name '_Cabeza_C_x.txt']);
end

谢谢大家!

在每次迭代中,您都会覆盖变量
allCABLX
allCABLY
allCABCY
allCABCX
,因此只有最后一个值会留在循环后。您需要将数据保存在循环中,以便以后能够访问它

如果所有文件都有相同数量的条目,这可以通过连接通过
importdata
获得的值来实现。因为我不知道
importdata
输出的维度,所以这里不详细介绍

如果文件的条目数不同,可以使用单元格数组存储每次迭代的数据。在所有条目大小相同的情况下也可以这样做。以下代码正是针对其中一个变量执行此操作的:

codes= [2302,2202,1602,1502,1702];

allCABLX = cell(length(codes),1);   % create empty cell array
for p=1:length(codes)
    name=num2str(codes(:,p));
    allCABLX{p} = importdata([name '_Cabeza_L_x.txt']);
end
请注意,我将
mat2str
替换为
num2str
,因为您只有一个要转换的数字,而不是整个矩阵。如果所有文件都有相同维度的数据,您可以在循环后使用
cell2mat
来获得法线矩阵