📜  MATLAB 中的映射函数(1)

📅  最后修改于: 2023-12-03 15:17:34.294000             🧑  作者: Mango

MATLAB 中的映射函数

什么是映射函数?

在 MATLAB 中,映射函数是一种将一个集合映射或转换到另一个集合的函数。它们可以应用于各种数据类型,如数字、矩阵、图像和音频信号等。映射函数允许我们修改或调整数据集,并根据需要创建新的输出。在 MATLAB 中,有许多内置的和用于映射的函数,我们可以根据需要使用它们。

MATLAB 中的一些映射函数
1. mapminmax

mapminmax 函数将每个输入向量的每个元素缩放到 YminYmax 范围内。它还可以将最小值和最大值进行记录,以便在使用网络时可以应用相同的变换。这个函数可以用于数据标准化和在输入到神经网络之前调整数据。

% 用法示例:
input = [1.0; 2.0; 3.0];
[y, settings] = mapminmax(input);

% 输出结果:
% y = [0.0000; 0.5000; 1.0000]
% settings = 
%     settings struct with fields:
%              ymin: 1
%              ymax: 3
%     settings struct with fields:
%              yrange: 2
%     settings struct with fields:
%              offset: -1
%              gain: 2
2. mapstd

mapstd 函数将每个输入向量的每个元素除以它的标准差,将每个元素减去均值并除以标准差,以便将数据映射到零均值和单位标准偏差的尺度上。它还可以将均值和标准差记录下来,以便在使用网络时可以应用相同的变换。这个函数可以用于数据标准化和在输入到神经网络之前调整数据。

% 用法示例:
input = [1.0; 2.0; 3.0];
[y, settings] = mapstd(input);

% 输出结果:
% y = [-1.2247; 0; 1.2247]
% settings = 
%     struct with fields:
%          mean: 2
%           std: 0.8165
3. newff

newff 函数可以创建一个前馈神经网络。这个函数需要一些参数,例如网络的层数、每个层中的神经元数量以及训练算法等。可以为每个输入和输出指定不同的映射函数,以将其调整到正确的范围内。例如,有时我们可能希望将数据集的范围映射到 -11 的范围内,因为这通常是神经网络输出的范围。

% 用法示例:
net = newff([0 1; 0 1], [2 1], {'tansig', 'purelin'}, 'trainlm');
net.inputs{1}.processFcns = {'mapminmax'};
net.outputs{2}.processFcns = {'mapminmax'};

% 输出结果:
% net = 
%           trainFcn: 'trainlm'
%             initFcn: 'initlay'
%         adaptFcn: 'adaptwb'
%         performFcn: 'mse'
%         plotFcns: {'plotperform', 'plottrainstate', 'ploterrhist', 'plotregression'}
%         inputs: [1x1 struct]
%         outputs: [1x1 struct]
%         layerConnect: [0 0; 1 0]
%         biasConnect: [1; 1]
%         inputConnect: [1; 0]
%         outputConnect: [0 1]

总结

在 MATLAB 中,映射函数可以帮助我们将数据集映射到正确的范围内,以便更好地用于训练和应用神经网络。我们介绍了一些常用的内置函数,但还有许多其他函数可以用于不同的数据类型和应用场景。熟练掌握这些函数可以让我们更加灵活地使用 MATLAB 进行数据处理和机器学习任务。