matlab入门学习(二)矩阵、字符串、基本语句、函数

news/2024/9/29 8:58:34 标签: matlab

一、矩阵

1、矩阵生成

%矩阵生成

%直接法
A=[1,2,3; 4,5,6; 7,8,9]

%冒号一维矩阵:开始,步长,结束(步长为1时可以省略)
B=1:1:10
B=1:10 

%函数法
    %linspace(开始,结束,元素个数),等差生成指定元素数的一维矩阵,省略个数则默认100个
    C=linspace(0,10,5)
    %diag(行向量或列向量,上移量):生成对角矩阵
    diagA=diag(diag_a,0) 
    %特殊矩阵
    e=eye(4) %eye(维数):单位阵
    z=zeros(1,4) %zeros(维数):全零阵
    o=ones(4,1) %one(维数):全1阵
    r=rand(4,3) %rand(维数):0-1分布随机阵
    rn=randn(4,1) %randn(维数):以0为均值的正态分布随机阵

2、矩阵运算

%矩阵运算

a=[1,2,3;4,5,6;7,8,9]
%获取行或列
[row_a,col_a]=size(a)
%行列中最大的
len_a=length(a)

%读取矩阵
diag_a=diag(a,1) %diag(矩阵,主对角线上方第k条斜线):读取矩阵的对角线

tril_a=tril(a,1)    %tril(矩阵,主对角线上方第k条斜线):读取矩阵的下三角阵
triu_a=triu(a,1)  % triu:读取矩阵的上三角阵(tri:三角阵  low:下  up:上)

%矩阵相乘
a*a

%矩阵对应元素->点运算
%a.*b , a./b , a.^b(b次方)

%逆矩阵:A*x=B,则x=pinv(A)*B
pinv(a)

%特征值,特征向量
[v,D]=eig(a)  %v:特征向量,D:特征值对角矩阵

%行列式
det(a)
%秩
rank(a)
%伴随矩阵:compan(向量)
compan([1,2,3]) 

3、矩阵修改

%矩阵修改

a=[1,2,3;4,5,6;7,8,9]
%替换
chg_a=a %先备份
chg_a(2,3)=4 %(行,列)=替换的元素
chg_a(1,:)=[2,2,2] %(行,: )替换行
chg_a(:,1)=[] %( : ,列)替换列,为[]删除该列

%转置
T_a=a'

%拼接
c1_a=cat(1,a,a) %1表示列,在列上拼接(垂直)
c2_a=cat(2,a,a) %2表示行,在行上拼接(水平)

%变维
rs_a=reshape(a,1,9) %reshape:重新塑形,元素个数不变,矩阵变为m*n(matlab矩阵元素列优先存储)

二、字符串

%字符串

str1='Hello,world' %单引号:传统字符数组(char[])
disp(class(str1))
str2="Hello,world" %双引号:字符串(string)
disp(class(str2))

%拼接
result=['a','b','c'] %用[ ]拼接字符数组,逗号或空格隔开
result2="a"+"b"+"c" %用+拼接字符串

%删除首尾空格
strtrim('  abc  ')

%截取第一个分隔符(空格,tab,回车)前的部分
strtok('123 456')

%比较
strcmp(str1,str2) %相等为1,不等为0
strncmp(str1,str2,3) %比较前3个是否相等(n)
strcmpi(str1,str2) %忽略大小写比较(i)
strncmpi(str1,str2,3) %忽略大小写,比较前3个是否相等

%转换
upper(str1) %转大写,lower转小写

num2str(123) 
str2num('123') %dec2hex都可以

abs_str=abs('aBc') %逐字符取ASCII码,double('aBc')也可以
str3=char([97,66,99]) %把ASCII转字符串


三、基本语句

1、if

a=100
if a>0
    disp('正数')
elseif a==0
    disp(0)
else
    disp('负数')
end

2、switch

a=1
switch a
    case 1
        disp('选择1')
    case 2
        disp('选择2')
    otherwise
        disp('选择其它,相当于default')
end

3、for和while

for i=1:2:10
    i
end

a=10;
while a>0
    a
    a=a-2;
end

%continue:跳进下一循环,break:结束循环

4、try-catch

a=[1,2,3;4,5,6;7,8,9]
b=[1,2]

try %首先尝试执行try代码
    c=a*b;
catch %若中途捕捉到错误,则执行catch代码
    c="Error";
end %最后无论如何都要执行的end后的代码
disp(c)

四、函数

function [s,c]=circ(r)
    s=pi*r*r;
    c=2*pi*r;
end

%调用
[a,b]=circ(3)

 带子函数版本:

function [s,c]=circ(r)
    s=calc_s(r);
    c=calc_c(r);
end

function s=calc_s(r) %直接在函数文件里定义、调用子函数(子函数必须位于下方)
s=pi*r*r;
end

function c=calc_c(r)
c=2*pi*r;
end

匿名函数:

%匿名函数:f = @(inputs) expression;
%inputs:输入
%expression:返回值

circ=@(r) [pi*r*r;2*pi*r]; %一个输入,多个输出(用向量返回,但是注意接收时也要用且仅用一个向量名,相当于是输出一个)
result=circ(3)
result(1) 
result(2)

add=@(x,y) x+y; %多个输入(直接输入多个变量),一个输出
add(2,3)

add=@(vars) vars(1)+vars(2); %多个输入(输入向量,注意调用时也要用[ ]),一个输出
add([3,4])


http://www.niftyadmin.cn/n/5682713.html

相关文章

adb命令无反应或找不到设备处理方式记录

背景 最近更换电脑,android studio找不到设备;本文档对adb使用过程中遇到的文件进行记录,方便下次自己和其他同学遇到相同问题进行参考,如果不完善的地方请谅解,本文档仅包含个人遇到问题及解决方式。 问题 打开And…

K8S真正删除pod

假设k8s的某个命名空间如(default)有一个运行nginx 的pod,而这个pod是以kubectl run pod命令运行的 1.错误示范: kubectl delete pod nginx-2756690723-hllbp 结果显示这个pod 是删除了,但k8s很快自动创建新的pod,但是…

PMP--三模--解题--41-50

文章目录 14.敏捷--十二大原则--第1条--我们的最高目标是,通过尽早持续交付有价值的软件来满足客户的需求。--价值交付是敏捷原则的第一条。题目要“尽早交付”,不就是选C,快速交付吗,还是重点在于“跨职能团队”,选敏…

VMware下的ubuntu显示文字太小的自适应显示调整

我的情况 我使用的是4K的32寸显示器,分辨率为 3840 x 2160,ubuntu版本为18.04,默认的情况下系统分辨率为 3466 x 1842。 ​ 此时,显示的文字很小,虽然可以看清,但也比较吃力,在VMware窗口…

卸载WSL(Ubuntu),卸载linux

禁用 WSL 功能 打开 Windows 功能: 按下 Windows R 打开运行对话框,输入 optionalfeatures,然后按回车。 禁用 WSL: 在弹出的 Windows 功能窗口中,找到 适用于 Linux 的 Windows 子系统(Windows Subsystem…

Spring Boot 3整合FFmpeg进行图片和MP3转换为视频

Spring Boot 3整合FFmpeg进行图片和MP3转换为视频的示例代码如下&#xff1a; 添加FFmpeg依赖到pom.xml&#xff1a; <dependency><groupId>com.github.kokorin.jaffree</groupId><artifactId>jaffree</artifactId><version>0.1.2</v…

Java | Leetcode Java题解之第441题排列硬币

题目&#xff1a; 题解&#xff1a; class Solution {public int arrangeCoins(int n) {return (int) ((Math.sqrt((long) 8 * n 1) - 1) / 2);} }

大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…