MATLAB学习笔记
- 一级目录
- 备忘录
- HELP
- 文件路径
- MATLAB函数定义与表达
- MATLAB特殊变量和常量
- MATLAB文件读写
- 数组
-
- MATLAB画图
- plot函数:改变图像中线的颜色和线条形式
- legend 函数
- hold on
一级目录
备忘录
- 变量命名字母开头和数字下划线
- MATLAB区分大小写
- who语句显示所有已经使用的变量名,whos为变量具体信息
- format short小数点后四位(默认),format long 命令显示16位,format bank小数点后两位,format rat 最接近有理式
- 矩阵表示:横空格列分号
- Matlab中函数保存在.m文件中是,函数名必须与文件名相同
- 计算乘法时应尽量使用.乘而非乘,因为前者对于输入参数为矩阵的情况也可使用。
- Matlab需要使用…来拼接多行
HELP
1.help
help
help plot
help [
help help
2.lookfor
lookfor
lookfor fourier
3.demo
4.helpwin
5.helpdesk
原文链接:[https://blog.csdn.net/Gou_Hailong/article/details/106092705]
文件路径
1.获取当前工作路径
cd
2.更改当前工作路径,filepath 为要设置的工作路径
cd('filepath')
pathtool
3.返回上一文件路径
cd('..\')
MATLAB函数定义与表达
function [输出变量名] = 函数名(输入变量名)
函数句柄 = @(输入变量) 输出变量
MATLAB特殊变量和常量
Name | Meaning |
---|
ans | 默认的变量名 |
eps | 浮点数相对误差 |
i,j | 虚数单位 |
Inf | 无穷大 |
NaN | 不定值(不是数字) |
pi | 圆周率 |
realmax | 最大的正实数 |
realmin | 最小的正实数 |
nargin | 函数实际输入参数个数 |
nargout | 函数实际输出参数个数 |
MATLAB文件读写
命令 | 作用 |
---|
save(filename,variables,'-ascii') | 将变量variables以文本形式存入文件中 |
A= load(filename,'-ascii') | 从文本形式文件中读取数据 |
[num,txt,raw] = xlsread(filename,sheet,xlRange) | 读取Excel文件 |
xlswrite(filename,A,sheet,xlRange) | 无穷大 |
数组
本章内容为转载
原文链接:https://blog.csdn.net/Gou_Hailong/article/details/109362945
数组的创建
1.简单创建
A=[];
A=[1 2 3 4];
A=[1;2;3;4];
A=start:step:end;
A=linespace(start,end,n)
A=logspace(start,end,n)
2.函数创建
zeros(m,n)
ones(m,n)
eye(m,n)
pascal(m,n)
hilb(n)
rand(m,n)
randn(m,n)
magic(n)
diag(v,k)
diag([1 2],1)
3.数组属性
isempty, isscalar, isvector, issparse
size(x)
length(x)
numel(x)
A(x,y)=A((y-1)*m+x)
sub2ind(size(x),2,10)
[i j]=ind2sub(size(x),20)
常用操作
判断两个矩阵是否相等有函数isequal()、all(A(😃 == B(😃),首先做了如下实验:
isequal(1,1)
isequal(nan,nan)
isequal(inf,inf)
matlab判断两个浮点数是否相等实际上并不是判断他们两个绝对意义上是否相等,而是有一个精度限制的,用代码表示为:
a=[1:5];
b=[1:5];
all(a(:) == b(:));
a(1,1)=1+1e-30;
all(a(:) == b(:));
abs(a-b)<eps
现在我们已经知道,在matlab里面nan~=nan,如果想判断两个矩阵(里面有nan元素)是否相等,咋整呢?这里提供一个小函数,大体思路就是,把nan换成inf,然后再判断两个矩阵知否相等。
%myequal.m
function eq=myequal(mat1,mat2)
mat1(isnan(mat1))=inf; %这个数字可以是其他的,只要不是nan即可
mat2(isnan(mat2))=inf;
eq=isequal(mat1,mat2);
end
常用操作
1.数组连接
cat(dim,A1,A2,…)
horzcat(A1,A2,…)
vertcat(A1,A2,…)
repmat(A,m,n)
blkdiag(A, B, …)
2.数组翻转
fliplr(A)
flipud(A)
flipdim(A,k)
rot90(A,k)
reshape(A,m,n)
3.数组运算
A+B
A-B
A*B
A/B
A\B
A^n
A.*B
A./B
A.\B
A.^B
4.数组查找
a=find(A)
[a,b]=find(A)
5.数组排序
sort(A)
常用操作
m=yourmat;
[a,b]=size(m); %矩阵的行列是a,b
num=a*b-numel(find(isnan(a))); %矩阵中除了nan外所有元素的个数
m1=reshape(m,a*b,1); %搞成一个列向量,或者直接m1=m(:);
max1=max(m1); %计算最大值
min1=min(m1); %计算最小值
mean1=nanmean(m1); %计算除nan之外的均值,mean
mode1=mode(m1); %除了nan 返回值最小的那个众数
med1=nanmedian(m1); %求除了nan的中位数,median
k(isinf(m1))=[]; %去掉inf
k(isnan(m1))=[]; %去掉nan
per=tabulate(k); %统计频率和频数
find(m==1); %找到m中等于1的元素的位置,列向量
sum(sum(m>3)); %求m矩阵大于3的元素个数
sum(sum(m==3)); %求m矩阵等于3的元素个数
A=m(:); %快速把一个多维矩阵变成一个列向量
photo1(isnan(photo1))=inf;%把一个数替换成另一个数
photo1(photo1==1)=inf;
MATLAB画图
plot函数:改变图像中线的颜色和线条形式
在plot(x,y)函数括号里面增加特性
legend 函数
添加图像说明
legend('A图像','B图像')
hold on
多条函数出现在同一个图中,后加hole on
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)