- 数据标准化
clc;
clear;
%构造一个数据集
data = [
78 521 602 2863;
144 -600 -521 2245;
95 -457 468 -1283;
69 596 695 1054;
190 527 691 2051;
101 403 470 2487;
146 413 435 2571;];
%按列进行数据标准化:把数据尽可能压缩到[-1,1]区间
%mean(data):每一列数据的平均值
%std(data):每一列数据的标准差值
temp = (data - mean(data))./std(data);
temp
clc;
clear;
%构造一个数据集
data = [
78 521 602 2863;
144 -600 -521 2245;
95 -457 468 -1283;
69 596 695 1054;
190 527 691 2051;
101 403 470 2487;
146 413 435 2571;];
%0-1 标准化,也称离差标准化,它是对原始数据进行线性变换,使结果落到 [0,1] 区间
%max(data):每一列数据的最大值
%min(data):每一列数据的最小值
temp = (data - min(data))./(max(data) - min(data));
temp
- 给出一列数据,求出数据的平均值、中位数、众数、极差、标准差、变异系数、四分位间距
%提示:均值、中位数、众数、极差、标准差、变异系数、四分位间距等
oneRow = [17 11 10 9 4 13 9 9 6 9 6 5 9 10 13 4 6 9 3 8 11 11 4 7 8 4 6 8 8];
%比如说有序数列 X = [x0 x1 x2 x3 x4 x5 ...xn]
%均值:是指在一组数据中所有数据之和再除以这组数据的个数
averageValue = mean(oneRow);
disp('均值为' + string(averageValue));
%中位数:是按顺序排列的一组数据中居于中间位置的数
medianValue = median(oneRow);
disp('中位数为' + string(medianValue));
%众数:一组数据中出现次数最多的数值
modeValue = mode(oneRow);
disp('众数为' + string(modeValue));
%极差:其最大值与最小值之间的差距,即最大值减最小值后所得之数据
rangeValue = range(oneRow);
disp('极差为' + string(rangeValue));
%标准差:sqrt(sum(X - mean(X)).^2)./n)
stdValue = std(oneRow);
disp('标准差为' + string(stdValue));
%变异系数:它是原始数据标准差与原始数据平均数的比
variationCoefficient = std(oneRow) / mean(oneRow);
disp('变异系数为' + string(variationCoefficient));
%百度百科:四分位间距,反映标志变动度的指标之一,变量数列中第三个四分位数和第一个四分位数之间的差距。
%四分位间距=Q3-Q1
%四分位间距:Q3 - Q1???这样子理解对吗?
interquartileSpacing = prctile(oneRow,75) - prctile(oneRow,25);
disp('四分位间距' + string(interquartileSpacing));
3.求两个矩阵的交集
%求交集
a = ["DJH" "Maurice" "Dasein" "DONG"];
b = ["DJH" "Maurice" "Dasein" "DONG" "Cat" "Philosophy"];
intersect(a,b)
4.创建字符串矩阵
temp = ones(1,5);
tempString = string(temp);
- 数据去重
nameSet = ["A","A","A","B","B","C","A","B","C","Philosophy"];
temp = unique(nameSet);
disp(temp);
- 数据平滑
x = linspace(0,20,100);
x = x + 0.3*randn(1,length(x));
%y = conv2(x,[0.25 0.25 0.25 0.25],'same'); %方法一
y = smoothdata(x,'gaussian',10); %方法二
%y = smooth(x,30); %方法三
hold on
plot(x,"--");
hold on
plot(y)
7.基础知识介绍
data = [1 2 3 4 5 6 7 NaN NaN 10 NaN];
data(1:2:11) %输出奇数位置的数值
%判断数组的每一位是否为NaN,是的话输出为1,否则为0.
isnan(data) %把所有的结果合并为一个数组
%函数的嵌套调用
f = @(x)3*x;
g = @(x)5*x+1;
f(g(1)) %计算的是:3*(5*1+1),答案是18
%find()函数 找到数组或矩阵中,数值大于0的索引
```matlab
temp = [0 1 0 2 0 3 0 4];
find(temp) %注意,输出为索引值
% “~”的作用,是把矩阵中的1变为0,矩阵中的0变为1
~[1 0 0 1]
~1
~0
8.导出清理干净的数据
data = [1 2 3 4 5 6 7 NaN NaN 10 NaN];
clearData = data(find(~isnan(data))); %方法一
clearData = data(~isnan(data)); %方法二
- 把大小写字母全转为大写字母
temp = ["a","b","c"];
upper(temp)
temp = "aBcD";
upper(temp)
10.字符串的拼接
%把多个字符串通过“+”拼接到一起
temp = "aaa" + "bbb" + "ccc"