matlab习题十例 (2)

  1. 数据标准化
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
  1. 给出一列数据,求出数据的平均值、中位数、众数、极差、标准差、变异系数、四分位间距
%提示:均值、中位数、众数、极差、标准差、变异系数、四分位间距等
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);
  1. 数据去重
nameSet = ["A","A","A","B","B","C","A","B","C","Philosophy"];
temp = unique(nameSet);
disp(temp);
  1. 数据平滑
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));       %方法二
  1. 把大小写字母全转为大写字母
temp = ["a","b","c"];
upper(temp)

temp = "aBcD";
upper(temp)

10.字符串的拼接

%把多个字符串通过“+”拼接到一起
temp = "aaa" + "bbb" + "ccc"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值