我有一个732 x 1 DOUBLE的mat文件,名为EnginePower。我使用平均函数来找到我的引擎功率的平均值,我首先想要将所有值与我的平均值进行比较,并且那些低于平均值的我想将它标记为-1并且高于平均值在另一个新的mat文件中为1。
答案 0 :(得分:0)
如果你的数据是一个细胞
% 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;