Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何将不同.mat文件中的变量存储到单独的矩阵中_Matlab - Fatal编程技术网

Matlab 如何将不同.mat文件中的变量存储到单独的矩阵中

Matlab 如何将不同.mat文件中的变量存储到单独的矩阵中,matlab,Matlab,我有一个文件夹,里面有一堆.mat文件,每个文件都有许多不同的变量。我想将单个变量存储到单独的矩阵中。我创建了一个for循环,通过它我按名称加载了每个文件,但这只提供了最后一个.mat文件。我是Matlab新手,我假设有一种非常简单的方法来实现这一点,但我没有找到任何东西 谢谢 编辑:好的,我有一大堆.mat文件,每个文件中都有一个变量X。我想将所有X存储到单独的矩阵中,这些矩阵对应于每个单独的.mat文件 将文件加载到变量中 ld{ii}=load(文件名{ii}) 现在,ld{ii}是一个结

我有一个文件夹,里面有一堆.mat文件,每个文件都有许多不同的变量。我想将单个变量存储到单独的矩阵中。我创建了一个for循环,通过它我按名称加载了每个文件,但这只提供了最后一个.mat文件。我是Matlab新手,我假设有一种非常简单的方法来实现这一点,但我没有找到任何东西

谢谢


编辑:好的,我有一大堆.mat文件,每个文件中都有一个变量X。我想将所有X存储到单独的矩阵中,这些矩阵对应于每个单独的.mat文件

将文件加载到变量中

ld{ii}=load(文件名{ii})

现在,
ld{ii}
是一个结构,在file
filename{ii}
Load(filename)
中,每个变量都有一个字段,单独将变量加载到工作空间中,但正如您所注意到的,每次加载具有相同名称的新变量时,这些变量都会被重写
S=load(filename)
将变量加载到结构数组中。然后可以按名称访问每个变量并将其保存在数组中。例如:

% create two files containing variables with the same names    
x = 1;
y = 2;
save("test1.mat")

x = 10;
y = 20;
save("test2.mat")

% load the saved files and store the variables x and y in vectors
for i  = 1:2
    temp = load(["test", num2str(i), ".mat"]);
    xVec(i) = temp.x;
    yVec(i) = temp.y;
end
为了响应您的编辑,您可以将每个文件中的所有变量保存在矩阵中,如下所示:

% load the saved files and store the contents of each file in a matrix
dataArray = {};
for i  = 1:2
    temp = load(["test", num2str(i), ".mat"]);
    dataArray{i} = [temp.x, temp.y];
end

单元格数组
dataArray
将包含每个文件的矩阵

你的问题不是很清楚,试着详细描述你问题的一个小例子。如果您的问题是mat文件包含同名变量,并且加载它们会导致变量被覆盖,那么您应该检查以下问题:(Shai的答案类似)。