如何在 mat 文件中标记单元格并将其保存在 matlab 中的另一个 mat 文件中?
How do i label cells in a mat file and save it in another mat file in matlab?
我有一个名为 EnginePower 的 732 x 1 DOUBLE 的 mat 文件。我使用 mean 函数找到我的引擎功率的平均值,我首先想将所有值与我的平均值和那些低于平均值的值进行比较,我想将其标记为 -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;
我有一个名为 EnginePower 的 732 x 1 DOUBLE 的 mat 文件。我使用 mean 函数找到我的引擎功率的平均值,我首先想将所有值与我的平均值和那些低于平均值的值进行比较,我想将其标记为 -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;