将matlab中一个变量的数据与matlab中另一个mat文件中的另一个变量合并

将matlab中一个变量的数据与matlab中另一个mat文件中的另一个变量合并,matlab,merge,Matlab,Merge,我有2个mat文件,我想通过将文件1中的所有记录添加到文件2的末尾来合并这些文件,我想通知您,这些文件包含与以下相同的变量: mat文件1包括(100)条记录: 文件名 距离值 mat文件2包括(800)条记录: 文件名 距离值 我想要有1000条记录的文件2 是否可以在matlab中使用?更新版本 显然你的档案里有这个: myStruct = struct('Names', cell(n,1), 'Distances', []); 其中,所有数组(单元格和法线矩阵)都包含行中的不同样本 您将

我有2个mat文件,我想通过将文件1中的所有记录添加到文件2的末尾来合并这些文件,我想通知您,这些文件包含与以下相同的变量:

mat文件1包括(100)条记录:

文件名 距离值

mat文件2包括(800)条记录:

文件名 距离值

我想要有1000条记录的文件2 是否可以在matlab中使用?

更新版本 显然你的档案里有这个:

myStruct = struct('Names', cell(n,1), 'Distances', []);
其中,所有数组(单元格和法线矩阵)都包含行中的不同样本

您将执行以下操作:

struct1=load('file1.mat');
struct2=load('file2.mat');

struct2.myStruct.Names=[struct2.myStruct.Names;struct1.myStruct.Names];
struct2.myStruct.Distances=[struct2.myStruct.Distances;struct1.myStruct.Distances];
save('file2.mat','-struct',struct2);

您好,jpjacobs,谢谢您回复索引超过矩阵维度。在8 struct2处的==>MergeNewsIMLBPMSHPPallbrodatZ89912中出错。(字段{k})=[struct2(字段{k});struct1(字段{k})];>>很抱歉这个错误,我想通知你,当我应用你的密码,我得到以下错误:ndex超过矩阵维数。在8 struct2处的==>MergeNewSimLBPMSHPAllBrodatz89912中出错。(字段{k})=[struct2(字段{k});struct1(字段{k})];另外,我想通知您,我从:fields=fieldnames(struct2)中获取第二个文件的文件名,而不是字段名,我忘了告诉您,我的文件包括数组的struct,这个struct包括两个文件(文件名距离值),谢谢,我做了以下修改:load file1.mat;struct1=Rec1;%Rec1是文件1 load file2.mat的arry结构的名称;struct2=Rec2;%Rec2是文件2字段的arry结构名=字段名(struct2);对于k=1:length(fields)struct2.(fields{k})=[struct2(fields{k});struct1(fields{k})];结束保存('file2.mat','-struct',struct2);但我得到了一个错误:右侧的输出不足,无法满足左侧逗号分隔的列表扩展。缺少[]是最可能的原因。您应该清楚地描述这两个文件中都包含哪些变量,它们包含哪些类型,以及希望如何合并它们。这将大大改善你的问题,并使其更容易回答。正如您所看到的,在注释中发布代码是没有用的。