matlab二维矩阵相等_Matlab基础(六)线性代数应用1

本文是Matlab基础教程系列的第六篇,主要介绍矩阵在线性代数中的应用。内容涵盖矩阵的定义、生成方法,如直接输入、冒号运算、内置函数等,并举例说明如何生成等距向量、全零矩阵、全1矩阵、单位矩阵以及各种随机矩阵。此外,还提及了点乘运算符的重要性和用途。下一篇文章将深入讨论矩阵的计算和编程技巧。
摘要由CSDN通过智能技术生成

目录

  • 前言

  • 数组的定义与生成

  • 下一篇预告

前言

首先总结一下,前面几篇已经介绍了Matlab在高等数学上、下册的基本应用,包括(点击红色字体可以查看链接):

符号表达式,函数求极限,泰勒展开,函数求导,一元函数求积分

二元函数符号表达式,绘制曲面图,解符号方程,求偏导数

以及

二重积分,三重积分,级数求和,解常微分方程

我们知道Matlab矩阵实验室的意思,这是因为它在矩阵、数组计算方面具有其他编程语言无可比拟的优势!

因此,接下来我们将要介绍Matlab线性代数中的应用.(线性代数是大学数学必修课程系列,和高等数学一样也是考研必考科目。)

可以说,掌握线性代数知识以及基本的Matlab矩阵操作是通往Matlab高效编程的必经之路!

数组的定义与生成

首先,要知道数组Matlab中数据的基本存储与操作格式,一维数组就是线性代数中的向量二维数组就是线性代数中的矩阵.向量的表现形式为一列数据(列向量)或者一行数据(行向量),而矩阵的表现形式为mn列的数据.

Matlab中生成一个数组可以有多种方法:

  • 直接输入,并利用中括号[]将数据括起来,例如

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

    得到行向量和列向量:

    1ab72922983b334b8e0f4198362d7705.png

    要注意的是,相同行的数据之间用**逗号,隔开;不同行的数据之间用分号**隔开。

  • 利用冒号:生成等距间隔的数据,格式为a:h:b,即:a到b且间隔步长h的向量.

    例如,列出20以内的奇数,则有:

    c=1:2:20     % 1到20,间隔2

    得到:

    89b3476c32221223842f9791eddfd57a.png

    想要得到列向量怎么办?很简单,转置就好了,Matlab转置是加单引号.例如:

    d=(1:2:20)'  % 转置得到列向量

    得到列向量:

    ceb8e005c410b98ff1a8712eabc18886.png
  • 利用内置函数生成数组,包括:

    • linspace(a,b,n):生成一个从a到b的具有n个数的等距向量,例如:

      e=linspace(0,1,6) % 0到1,共6个数的行向量
      06e5f7a789742563482e0a1939262a5a.png
    • zeros(m,n):生成一个mn列的全零矩阵,例如:

      f=zeros(1,length(e)) % 生成一个与e具有相同长度的全零向量

      得到一个和行向量e相同长度的全零向量:

      266a406ecb2e827905540ca75618ecb3.png

      其中,length(e)函数可以获得向量e的长度。

      值得注意的是,在编程时提前生成一个用来存放计算结果的全零向量,可以避免在循环语句中向量的长度一直在变化,从而减少计算时间,提高效率,这有点类似C语言中提前指定变量以分配内存的思想。

    • ones(m,n):生成一个mn列的全1矩阵,例如:

      g=ones(size(f))  % 生成一个与f具有相同维度的全1向量

      得到一个和行向量f相同长度的全1向量:

      2444300b46fd8036efba48a79b86396a.png

      其中,size(f)函数得到数组f的维度,f此时是1行6列的向量,因此返回[1,6],再利用ones可以得到一个和f维度相同的全1向量g.

    • eye(m,n):生成m行n列的单位矩阵(即对角元素为1,其他元素为0).

      例如:

      E=eye(3,3) % 3阶单位矩阵

      得到单位矩阵:

      fc2ffc08b61a9d274278261ebc238a6a.png
    • magic(n):生成n行n列的**“魔方”矩阵**(每一行之和、每一列之和、每一斜对角之和都相等的矩阵!)

      例如:

      M=magic(4) % 4阶数魔方矩阵

      得到:

      70fef336223a8bb3749b1e16616a8b0d.png

      读者可以验证是否满足“魔方”矩阵的性质。

    • rand(m,n):生成m行n列0到1的随机分布矩阵,例如:

      h=rand(2,3)    % 2乘以3的随机矩阵

      得到随机矩阵:

      7987be6a300e1f81504bc632def52d1f.png
    • randi(Nmax,[m,n]):生成一个m行n列的整数随机矩阵,且整数的最大值为Nmax.

      例如,

      k=randi(10,[2,3]) % 2乘以3的整数随机矩阵,最大值为10
      1cc17f48678dd578819fa9878425b8e5.png
    • randn(m,n):生成m行n列的正态分布矩阵。

      例如:

      n=randn(1,5)  % 1行5列的正态分布矩阵

      得到:

      e28177e2d15c74f28bd5812d2d97557f.png
  • 利用已有的数组进行整体运算与赋值得到新的数组。

    例如,在二维函数绘图中,我们首先定义离散坐标x向量,再由函数表达式得到对应的y向量,紧接着用y关于x绘图。

    例如,下面绘制心形线:

    首先我们要定义个向量来表示角度,紧接着利用写出每个角度处对应的x坐标和y坐标,它们应当和角度向量具有相同维度!最后用y关于x绘图。

    t=linspace(0,2*pi,100); % 角度离散点
    x=(1-sin(t)).*cos(t); % x坐标
    y=(1-sin(t)).*sin(t);  % y坐标
    figure
    plot(x,y,'r-*')

    得到:

    fdceaa250a58fb3da389897b3981576c.png

    注意我们利用了.*运算符号,该运算符可以说是Matlab中最重要的几个运算符号之一!

    .*运算符号表示的是两个相同维度的数组对应位置的元素相乘,和通常的矩阵乘法规则完全是两个概念。

    例如,

    A=[1 2 3];
    B=[1 1 1];
    A.*B

    得到:

    32b59e9def0ea8f094a9166caad5db56.png

    即为对应元素相乘的结果。

    点乘运算符具有许多有用的功能,这在以后都将会介绍。

下一篇预告

矩阵的计算以及常用的矩阵编程技巧将在下一篇呈现!

64d543a1345ec03299cf6c594d9709bf.png
期待您的肯定,欢迎关注与转发!

a1c1785a4e1458914b533f0fda42897e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值