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

时间:2015-01-28 10:01:33

标签: matlab

我有一个732 x 1 DOUBLE的mat文件,名为EnginePower。我使用平均函数来找到我的引擎功率的平均值,我首先想要将所有值与我的平均值进行比较,并且那些低于平均值的我想将它标记为-1并且高于平均值在另一个新的mat文件中为1。

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;