Matlab将多个.mat文件内的数据行拼接到一个.mat文件里

clc;
clear all;
close all;
namelist = dir(‘C:\Users\王浩\Desktop\new2000\原数据\af200*.mat’);
len = length(namelist);
A=[];
for i = 1:len
file_name{i}=namelist(i).name;
load(file_name{i});
temp=importdata(file_name{i});
A=[A;temp];
end

要将一个新的数组拼接MATLAB文件中原始数据上,可以使用Matio库提供的API函数。首先,需要打开MATLAB文件并读取原始数据。然后,可以将新的数组追加到原始数据中,并将修改后的数据写回到MATLAB文件中。 以下是一个示例代码,演示如何将新的数组拼接MATLAB文件中原始数据上。 ```c++ #include <matio.h> int main() { // 打开MATLAB文件 mat_t *matfile = Mat_Open("filename.mat", MAT_ACC_RDWR); // 读取原始数据 matvar_t *matvar = Mat_VarRead(matfile, "data"); // 获取原始数据的维度和数据类型 size_t dims[2] = { matvar->dims[0], matvar->dims[1] }; enum matio_types data_type = matvar->data_type; // 创建新的数组 double new_data[] = { 1.0, 2.0, 3.0 }; size_t new_dims[2] = { 1, 3 }; // 将新的数组追加到原始数据上 double *old_data = (double*)matvar->data; size_t old_size = matvar->dims[0] * matvar->dims[1] * sizeof(double); size_t new_size = new_dims[0] * new_dims[1] * sizeof(double); matvar->dims[0] += new_dims[0]; matvar->data_size += new_size; matvar->data = malloc(matvar->data_size); memcpy(matvar->data, old_data, old_size); memcpy((char*)matvar->data + old_size, new_data, new_size); // 将修改后的数据写回到MATLAB文件Mat_VarWrite(matfile, matvar, MAT_COMPRESSION_NONE); // 关闭MATLAB文件 Mat_Close(matfile); return 0; } ``` 在上面的代码中,假设MATLAB文件中包含一个名为"data"的变量,其数据类型为double,维度为2x3。示例代码将创建一个新的数组{1.0, 2.0, 3.0},并将其追加到原始数据{4.0, 5.0, 6.0, 7.0, 8.0, 9.0}上,形成一个新的2x4的数据矩阵。最后,修改后的数据将被写回到MATLAB文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值