欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习(MACHINE LEARNING)MathWorks系列教程

程序员文章站 2022-05-22 07:53:17
...

1 .m文件和 .mat文件的区别

.m文件和 .mat文件的区别为:性质不同、调用不同、解析不同。

1.1 性质不同

一、性质不同

1、.m文件:.m文件是保存一段代码zd的文件,类似于C语言中的一个函数体; 这也是MATLAB中最常见的文件内保存格式之一。

2、.mat文件:.mat文件是matlab的数据存储的标准格式。也就是操作产生的数据的一个集合包,可以把一次处理的结果保存,供下一次使用。

1.2 调用不同

二、调用不同

1、.m文件:.m文件可以直接用来执行调用。

2、.mat文件:.mat文件不可以直接用来执行,需要通过load命令调用。

2 format函数

请注意,解包含虚数 i,这是 MATLAB 中的内置常量。

在命令行窗口中仅显示前四个小数位。您可以使用 format 函数控制显示的精度。

请试着输入 format long 并显示 x 的值。

输入 format short 可切换回默认显示。

3 .*的区别

1、在进行数之间的运算时“.”和“”是没有区别的,都是表示普通的乘法运算。例:m = 2,n = 3,m.n = 6, mn = 6。

2、在进行矩阵之间的运算时“.”和“”的意义就有所不同了。假设a,b表示两个矩阵,a*b表示矩阵a与矩阵b进行矩阵相乘,a.*b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素

4 绘图案例

plot(yrs,res,"b--")
hold on
plot(yrs,comm,"k:")
plot(yrs,ind,"m-.")
hold off

机器学习(MACHINE LEARNING)MathWorks系列教程

5 导入工具

机器学习(MACHINE LEARNING)MathWorks系列教程

6 逻辑索引

您可以使用逻辑数组作为数组索引,在这种情况下,MATLAB 会提取索引为 true 的数组元素。以下示例将会提取 v1 中大于 6 的所有元素。
v = v1(v1 > 6)
v =
6.6678
9.0698

7 恒星运动

load starData
nObs = size(spectra,1)
lambdaStart = 630.02
lambdaDelta = 0.14

Task 1

lambdaEnd = lambdaStart + (nObs-1)*lambdaDelta
lambda = (lambdaStart:lambdaDelta:lambdaEnd)'

Task 2 & 7

s = spectra(:,3)

Task 3
loglog(lambda,s,".-")
xlabel("Wavelength")
ylabel("Intensity")

Task 4

[sHa,idx] = min(s)
lambdaHa = lambda(idx)
Task 5
hold on
loglog(lambdaHa,sHa,"rs","MarkerSize",8)
hold off


Task 6

z = lambdaHa/656.28 - 1
speed = z*299792.458

机器学习(MACHINE LEARNING)MathWorks系列教程
机器学习(MACHINE LEARNING)MathWorks系列教程

Task 1
[sHa,idx] = min(spectra);
lambdaHa = lambda(idx);
z = lambdaHa/656.28 - 1;
speed = z*299792.458

Tasks 2 - 4
for c = 1:7
    s = spectra(:,c);

    if speed(c) <= 0
        loglog(lambda,s,"--")
    else
       loglog(lambda,s,"LineWidth",3) 
    end
    hold on
end
hold off
Task 5
legend(starnames)


Task 6

movaway = starnames(speed > 0) 

机器学习(MACHINE LEARNING)MathWorks系列教程

8 loglog

loglog(x,y)
x 轴和y 轴均为对数刻度(Logarithmic Scale)

semilogx(x,y) semilogx(x,y)
x 轴为对数刻度,y 轴为线性刻度

semilogy(x,y) semilogy(x,y)
x 轴为线性刻度,y 轴为对数刻度
双对数坐标图可以放大细微的变化

9 摘要

基本语法
示例	说明
x = pi	使用等号 (=) 创建变量。
左侧 (x) 是变量的名称,其值为右侧 (pi) 的值。
y = sin(-5)	您可以使用括号提供函数的输入。
 

桌面管理
函数	示例	说明
save	save data.mat	将当前工作区保存到 MAT 文件中。
load	load data.mat	将 MAT 文件中的变量加载到工作区。
clear	clear	清除工作区中的所有变量。
clc	clc	清除命令行窗口中的所有文本。
format	format long	更改数值输出的显示方式。
 

数组类型
示例	说明
4	标量
[3 5]	行向量
[1;3]	列向量
[3 4 5;6 7 8]	矩阵
 

等间距向量
示例	说明
1:4	使用冒号 (:) 运算符,创建一个从 14,间距为 1 的向量。
1:0.5:4	创建一个从 14,间距为 0.5 的向量。
linspace(1,10,5)	创建一个包含 5 个元素的向量。这些值从 110 均匀间隔。
 

创建矩阵
示例	说明
rand(2)	创建一个 22 列的方阵。
zeros(2,3)	创建一个 23 列的矩形矩阵。
 

索引
示例	说明
A(end,2)	访问最后一行的第二列中的元素。
A(2,:)	访问第二行所有元素。
A(1:3,:)	访问前三行的所有列。
A(2) = 11	将数组中第二个元素的值更改为 11。
 

数组运算
示例	说明
[1 1; 1 1]*[2 2;2 2]
ans =
     4    4
     4    4	执行矩阵乘法。
[1 1; 1 1].*[2 2;2 2]
ans =
     2    2
     2    2	执行按元素乘法。
 

多个输出
示例	说明
[xrow,xcol] = size(x)	将 x 中的行数和列数保存为两个不同变量。
[xMax,idx] = max(x)	计算 x 的最大值及其对应的索引值。
 

文档
示例	说明
doc randi	打开 randi 函数的文档页。
 

绘图
示例	说明
plot(x,y,"ro-","LineWidth",5)	绘制一条红色 (r) 虚线 (--)
并使用圆圈 (o) 标记,线宽很大。
hold on	在现有绘图中新增一行。
hold off	为下一个绘图线条创建一个新坐标区。
title("My Title")	为绘图添加标签。
 

使用表
示例	说明
data.HeightYards	从表 data 中提取变量 HeightYards。
data.HeightMeters = data.HeightYards*0.9144	从现有数据中派生一个表变量。
 

逻辑运算
示例	说明
[5 10 15] > 12	将向量与值 12 进行比较。
v1(v1 > 6)	提取 v1 中大于 6 的所有元素。
x(x==999) = 1	用值 1 替换 x 中等于 999 的所有值。
 

编程
示例	说明
if x > 0.5
    y = 3
else
    y = 4
end	如果 x 大于 0.5,则将 y 的值设置为 3。

否则,将 y 的值设置为 4for c = 1:3
    disp(c)
end	循环计数器 (c) 遍历
值 1:3123)。

循环体显示 c 的每个值。
相关标签: Machine learning