matlab基础应用

matlab脚本基础教程

矩阵和数组

创建矩阵

直接赋值的方法,逗号或空格用来分列,分号用来分行。

a=[1 2 3 4];%1×4行向量
b=[1,2,3,4];
c=[1;2;3;4];%4×1列向量

利用zeros,ones来创建矩阵。

zeros(3);%3×3数值为0的方阵
zeros([2,3]);%2×3数值为0的矩阵
ones(3);%%3×3数值为1的矩阵
ones([2,3]);%2×3数值为1的方阵

利用linspace,生成等间距的向量。

l1=linspace(-10,10);%-10到10等间距生成100个点
l2=linspace(-10,10,5);%-10到10等间距生成5个点

矩阵转置

A=[1 2 3 4];%1×4行向量
B=A';%4×1列向量

处理矩阵

矩阵相加,必须满足维度相同。如果维度不相同,一定情况下也可以相加,参考矩阵相加的隐形规则。

A1=[1,2;3,4];
B1=[5,6;7,8];
C1=A1+B1;

矩阵乘以常数和矩阵点乘。矩阵叉乘参考matlab的help。

A2=[1,2,3;4,5,6];
B2=[1,2,3;4,5,6];
k=2;
C2=k2*A2;
C3=A2.*B2;

访问矩阵中的元素。:作为数组的下标时,指的是一个维度的所有下标。

A3=[1,2;3,4;5,6]
A3(2,1)%第2行第一列的元素
A3(:,1)%第一列
A3(2,:)%第二行

数据类型

整数和浮点数

matlab默认存储的数值类型是double。当不做类型转换时,数值的类型就是double类型。

数值类型有如下几种:

在这里插入图片描述

数值类型转换:

intvar=int8(256)
uintvar=uint8(256)

字符数组和字符串

字符数组常量和字符串常量

mychar='hello world';
mychar(1)
str="hello world";
str(1)

字符数组和字符串的相互转换

char(str)
string(mychar)

字符串的处理

str1="250"
num=str2double(str1)%字符串转double类型
str2="a,b,c"
split(str2,',')%字符串分隔
eval("a"+num2str(1)+"="+"3")%将字符串转换成matlab表达式

通过列向量创建表。

T = table(var1,...,varN) 根据输入变量 var1,...,varN 创建表。变量的大小和数据类型可以不同,但所有变量的行数必须相同。

name=["张三","李四","王五"]';
years=[15,16,17]';
T=table(name,years)

创建空表,设置行名称,列名称,和数值类型

T1=table('Size',[3,3],'VariableTypes', {'string','double','int8'}...
    ,'VariableNames',{'别名','体重','年龄'},'RowNames',{'张三','李四','王五'})

通过readtable读取excel中的表格

filename="C:\Users\shnel\Desktop\采购\采购汇总清单.xlsx";
T2=readtable(filename,'ReadVariableNames',false,'Range','H3:J15');

元胞数组

元胞数组不同于,普通数组,他的内容可以是任何的数据类型。创建元胞数组需要用花括号,访问元胞数组的成员也用花括号。

C = {1,2,3;'text',rand(5,10,2),{11; 22; 33}}
C{2,1}%访问元胞数组中的成员需要用花括号

matlab循环及条件语句

条件语句

if语句

基本语法:

if expression
    statements
elseif expression
    statements
else
    statements
end
switch语句

基本语法:

switch switch_expression
   case case_expression
      statements
   case case_expression
      statements
    ...
   otherwise
      statements
end

与C++和C不同,switch的条件可以是字符串。并且不需要break,matlab只会执行当前case的语句,不会再向下执行。

循环语句

for循环

基本语法:

for index = values
   statements
end

index指的是索引,可以理解为C++中的迭代器iterator,index有几种形式。

  • initVal:endVal - index 变量从 initValendVal1 递增,重复执行 statements 直到 index 大于 endVal
  • initVal:step:endVal - 每次迭代时按值 stepindex 进行递增,或在 step 是负数时对 index 进行递减。
  • valArray - 每次迭代时从数组 valArray 的后续列创建列向量 index
while循环

基本语法

while expression
    statements
end

matlab画图基础

绘制线图

plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。如果 XY 都是向量,则它们的长度必须相同。plot 函数绘制 YX 的图。

基本语法:plot(X,Y,LineSpec)

LineSpec是线型、标记和颜色的属性设置,比如说’-or’,是带圆形标记的红色实线,’–sb’,是带方形标记的蓝色虚线

x=linspace(-10,10);
y=sin(x);
plot(x,y,'-or')
hold on
z=cos(x);
plot(x,z,'--sb')

hold on是用来保留,上一次的绘图,然后再绘制这次的图形。

设置坐标轴标签

ax=gca%返回当前图窗的当前坐标区或图
xlabel(ax,"x轴")
ylabel(ax,"y轴")
xlim(ax,[0,10])
ylim(ax,[0,1])

gca的作用是返回当前图窗的当前坐标区或图,这通常是最后创建的图窗或用鼠标点击的最后一个图窗。

绘制多个图

gca是返回当前图窗的所有特性,如果有用多个图窗画图,则需要用f=figure()来创建图窗,并用figure(f),激活图窗,这样就可以设置多个图窗的特性。

x1=linspace(0,10);
x2=linspace(0,100);
y=sin(x1);
z=cos(x2);
f1=figure('Name','正弦');
plot(x1,y);
f2=figure('Name','余弦');
plot(x2,z);
ax1=gca;
figure(f1);
ax2=gca;
ylabel(ax1,"正弦")
ylabel(ax2,"余弦")
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值