如何在 mat 文件中标记单元格并将其保存在 matlab 中的另一个 mat 文件中



我有一个 732 x 1 DOUBLE 的垫子文件,名为 EnginePower。我使用均值函数来查找发动机功率的平均值,我首先想将所有值与我的平均值进行比较,以及那些低于平均值的值,我想将其标记为 -1,高于平均值的值在另一个新的 mat 文件中为 1。

如果数据是单元格

% lets say you have a variable called "var1" in the mat file
load('your_mat_file.mat')
var1=cellfun(@(A) sign(A), var1,'UniformOutput', false);
save('new_mat_file.mat','var1')
%if you want to change any variable in the mat file
clear all
load('your_mat_file.mat')
var_names=whos;
for i=1:length(var_names)
eval([var_names(i).name,'=cellfun(@(A) sign(A), ',var_names(i).name,'''UniformOutput''', false);'])
save('new_mat_file.mat')
end

如果你的数据是双倍的

% lets say you have a variable called "var1" in the mat file
load('your_mat_file.mat')
var1=sign(var1);
save('new_mat_file.mat','var1')
%if you want to change any variable in the mat file
clear all
load('your_mat_file.mat')
var_names=whos;
for i=1:length(var_names)
eval([var_names(i).name,'=sign(',var_names(i).name,')'])
save('new_mat_file.mat')
end

对于任何数据类型,如果需要除符号之外的任何其他条件,请更改:

var1=sign(var1);

var1=(var1<'your_cut_value').*-1+(var1>'your_cut_value').*1;

最新更新