ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Matlab学习笔记_1

2021-03-14 11:02:53  阅读:191  来源: 互联网

标签:cell end 文件 矩阵 笔记 学习 Matlab array structure


Matlab学习笔记_1

基本操作

cos,sin等用原式
ln:log,eg:log10(10)=1
e^n:exp(n)
圆周率:pi
无穷大:inf
复数虚部:i,j
很小的数:eps
NaN:not a number
ans储存上一步得出的数值
help [command]:用于查看命令
who命令可以查看当前所有变量名;whos可以显示变量及信息
clear [变量名]:清除对应变量,不加变量名则清除所有变量,如果加"all"就清除所有包括图像显示等
clc:clear command window
format [数据类型]:改变输出数据的数据(显示)类型,long,short,shortE(科学计数),longE,bank(两位小数),hex(十六进制),rat(分数,有理数)
disp(a)%显示变量a

ctrl+C:停止程序执行,防止宕机
可以用“布局”来查看历史输入
可以用右上角的搜索文档查找相关命令
在一条指令后加";",不显示结果
iskeyword用于查看已有特殊含义的关键字,尽量不要使用,如果使用也不会报错,但原有功能和含义会无效

基本矩阵操作

a=[1 2 3 4]%输出行
b=[1;2;3;4]%输出列
定位矩阵中的元素:
a=[1 2 3;4 5 6;7 8 9]
a(8)=6%先从上往下,再逐渐往右
a([1 3 5])=[1 7 5]%构成一个新的矩阵
a(3,2)=8%3行2列
a([1,3],[1,3])=[1 3;7 9]%第1、3行的第1、3列
所以就看a()中有无","
a[3;:]=[]%去除a中第3行的所有元素
b=[1:5]=[1 2 3 4 5]
b=[1:2:5]=[1:3:5]
str=‘a’:2:‘z’
c=[a b];c=[a;b]%合成矩阵
c=a.*b%a和b对应元素相乘
a’%a的转置

linspace(x1,x2,x3)%x1至x2之间的数,步长为x3
eye(n)%nn的单位矩阵
zeros(n1,n2)%n1
n2的0矩阵
ones(n1,n2)%n1n2的元素全为1的矩阵
diag(a)%矩阵a的对角线元素
rand(n1,n2)%n1
n2的元素随机的矩阵
max(a)%矩阵a中每一列的最大值
所以找最大值为max(max(a))
min用法类似
sum(a)%a矩阵中每一列的值的和
prod(a)%a矩阵中每一列的值的乘积
mean(a)%a矩阵中每一列的值的平均值
sort(a)%a矩阵中每一列的值的从小到大排列
sortrows(a)%a矩阵按每一行第一个元素的值的大小从小到大排序
size(a)%输出矩阵a的行数和列数
length(a)%输出a的列数
find(a==x)%输出元素x在矩阵a中的位置

矩阵拼接
c=cat(n,a,b)%n=1:按行往下接;n=2:按列往下接;n=3:按层往下接
矩阵变形
c=reshape(a,row,col)%将矩阵a变换为row*col的矩阵

matlab脚本文件.m与函数基础

在主页菜单中新建脚本(ctrl+N)
在编辑器菜单栏中,编辑一栏中该图标可用于查询函数
查询函数功能键
运行脚本(F5)
注释符号为"%",选中相关内容右键,或者使用快捷键
注释添加
使用"%%"可以划分代码区块,点击运行节可以只运行相关区块,常用于Debug
区块运行
进入调试模式直接加断点即可
matlab常用脚本指令:

if conditon1
	statement1
elseif condition2
	statement2
else
	statement3
end

switch expression
case value1
	statement1
case value2
	statement2
otherwise
	statement
end

while expression
	statement
end

for variable=start:increment:end
	commands
end

break
continue%这两个命令问题不大

%在设计matlab程序时,如果不能确保某段程序代码是否会出错,可以采用try...catch语句,
%其能够捕获和处理错误,使得可能出错的代码不影响后面代码的继续执行,也可以检查,
%排查,解决程序的一些错误,增强代码的鲁棒性和可靠性。
try
	程序代码1;
catch
	程序代码2;
end
%程序首先运行try和catch之间的“程序代码1”,如果没有发生错误则不执行catch和end之间的
%“程序代码2”,而是执行end后的程序;
%如果在执行“程序代码1”时产生错误,则立即执行“程序代码2”,然后继续执行end后的程序。

pause(a)
%表示程序暂停a秒后继续执行,但有时候也存在这种情况,程序中只有pause;
%并没有参数a,这样的意思是程序暂停,按任意键程序继续执行。

tic用来保存当前时间,而后使用toc来记录程序完成时间。两者往往结合使用,用法如下:(显示时间单位: 秒)

tic
operations
toc

edit(which(‘脚本名称.m’))%用于查看脚本信息和位置
函数编写与调用基本格式如图(函数写好后直接保存,保存的文件名与函数名相同)
函数的基本编写与调用
多输入、多输出函数的编写与调用如图所示
多输入多输出函数调用
也可以在function中使用input函数输入数值,交互式地输入,此时要调用函数只需要输入函数名然后回车,如果在输入数值过程中还未结束直接回车会退出函数的调用。
函数内置变量
inputname:varible name of function input
mfilename:file name of currently running function
nargin:number of function input arguments
nargout:number of function output arguments
varargin:varible length input argument list
varargout:varible length output argument list

Function Handles:
eg.

f=@(x) exp(2*x);
x=0:0.1:2;
plot(x,f(x));

变量与文件

变量数据类型:
int8,int16,int32,int32,int64;
uint8,uint16,uint32,uint64;
single;
double(默认类型)
int8(a)%将a转换为int8数据类型

string
s1=‘H’
s1=‘Example’
s2=‘String’
s3=[s1 s2]= ‘ExampleString’%合并字符串
s1(s1==‘a’)=‘Z’%将s1中所有’a’改为’Z’

Structure
类似结构体变量:
student.name=‘James Zhang’;
student.grade=100;
student.id=19010100;
如果要构造数组:
student(n).name=‘James Zhang’;%n表示第n个学生
student(n).grade=100;
student(n).id=19010100;

内置结构体Structure Function:
cell2struct:convert cell array to structure array
fieldnames:field name of structure, or public fields of object
getfield:field of structure array
isfield:determine whether input is structure array field
isstruct:determine whether imput is structure array
orderfields:order fields of structure array
rmfield:remove field from structure
setfield:assign values to structure array field
struct:create structure array
struct2cell:convert structure to cell array
structfun:apply function to each field of scalar structure

structure里面的元素也可以是structure,类似于C语言中的链表

Cell Array
里面的元素类型各不相同
可以用A{1,1}='asa’表示%表示A第一行第一列元素
也可以用A(1,1)={‘asa’}表示

内置Cell Function:
cell:create cell array
cell2mat:convert cell array to numeric array
cell2struct:convert cell array to struct array
celldisp:cell array contents
cellfun:apply function to each cell in cell array
cellplot:graphically display structure of cell array
cellstr:create cell array of strings from character array
iscell:determine whether input is cell array
mat2cell:convert array to cell array with different sized cells
num2cell:convert array to cell array with consistently sized cells
struct2cell:convert structure to cell array

变量检查
isinteger,islogical,isnan,isnumeric,isprime,isreal,iscell,ischar,isempty,isequal,isfloat,isglobal,ishandle,isinf

文件存储
save 文件名.mat%存储workspace内的所有内容至指定文件
save 文件名.mat -ascii%存储的文件可以直接用文本编辑器打开

load(‘文件名.mat’)%加载指定文件至workspace
load(‘文件名.mat’,’-ascii’)

score=xlsread(‘文件名.xlsx’)%读取excel文件
score=xlsread(‘文件名.xlsx’,‘B2:D4’)%读取excel文件B2:D4的元素

xlswrite(‘文件名.xlsx’,m,1,‘E2:E4’)%在指定文件的第1页的E2:E4位置写入m
xlswrite(‘文件名.xlsx’,{‘name’},1,‘E1’)%在指定文件的第1页的E1位置写入’name’

[score header]=xlsread(‘文件名.xlsx’)%将数值和文字分别读出

打开一个文件,会有一个该文件的fid,并创建一个文件指针:
fid=fopen(’[filename]’,’[permission]’)%[permission]=‘r’/‘r+’/‘w’/‘w+’/‘a’/‘a+’
fprintf(fid,format,data)%数值写入文件,format example:’%2f’
a=fscanf(fid,format,size)%从文件读取元素,size要读取的个数
feof(fid)%检查文件指针是否在文件末尾,return bool
fclose(fid)%关闭文件

sao话一下

人不是独居生物,随着成长,思想渐为独,立有了很多自己的想法,但这个时候,你能交心的朋友,能倾诉的父母都已经跟不上你的思想,所以你渐渐把心事埋在了心里,结果有一天,你发了一个与你三观很合,某些想法不谋而合,于是你们就在一起,建立了某种关系,从而使你们更加亲密。所以,男生和男生谈恋爱更多的是需要陪伴吧

标签:cell,end,文件,矩阵,笔记,学习,Matlab,array,structure
来源: https://blog.csdn.net/qq_46024563/article/details/114708183

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有