matlab重建运算,MATLAB的矩阵运算与重构

数组运算与矩阵运算

在MATLAB中,术语矩阵和数组在一般情况下是没有区别的。严格地说,一个矩阵就是一个二维的数组,是用来进行线性代数运算的。MATLAB运用于矩阵上的数学运算符是以线性代数中的矩阵运算法则来进行计算的,而数组运算是基于两个矩阵对应元素之间的,所以在MATLAB中,数组运算和矩阵运算是有区别的。

为了更清晰地表述数组运算和矩阵运算的区别,本节将二者相对应的命令列表进行对比,以说明其异同。表2-8列出了两种运算指令形式和实质功能的区别。

表2-8 数组运算与矩阵运算的区别

5e169ef05051

【例2-11】 数组运算和矩阵运算的比较。

>> A=[1 2;3 4]; % 测试矩阵A

>> B=[4 3;2 1]; % 测试矩阵B

>> r1=100+A % 矩阵A加上一个常数

r1 =

101 102

103 104

>> r2_1=A*B % 两个矩阵相乘,矩阵乘法

r2_1 =

8 5

20 13

>> r2_2=A.*B % 两个矩阵相乘,数组乘法

r2_2 =

4 6

6 4

>> r3_1=A\B % 矩阵左除

r3_1 =

-6.0000 -5.0000

5.0000 4.0000

>> r3_2=A.\B % 数组除法

r3_2 =

4.0000 1.5000

0.6667 0.2500

>> r4_1=B/A % 矩阵右除

r4_1 =

-3.5000 2.5000

-2.5000 1.5000

>> r4_2=B./A % 数组除法

r4_2 =

4.0000 1.5000

0.6667 0.2500

>> r5_1=A.^2 % 数组幂

r5_1 =

1 4

9 16

>> r5_2=A^2 % 矩阵幂

r5_2 =

7 10

15 22

>> r6_1=2.^A % 数组幂

r6_1 =

2 4

8 16

6 矩阵的重构

6.1 矩阵元素的扩展与删除

MATLAB提供有对矩阵中的元素进行行或者列的扩展与删除的功能。

1.矩阵元素的扩展

将数据保存在矩阵现有维数以外的元素中时,矩阵的尺寸会自动增加,以便容纳下这个新元素。这个功能可以用来进行矩阵的扩展。

【例2-12】 矩阵的扩展。

>> A=magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> A(6,7)=17

A =

16 2 3 13 0 0 0

5 11 10 8 0 0 0

9 7 6 12 0 0 0

4 14 15 1 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 17

>> A(:,8)=ones(6,1)

A =

16 2 3 13 0 0 0 1

5 11 10 8 0 0 0 1

9 7 6 12 0 0 0 1

4 14 15 1 0 0 0 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 17 1

本例中,A的原始矩阵并没有A(6,7)这个元素,通过赋值给A(6,7),矩阵A扩展成了一个6´7的新矩阵,其中未赋值的扩展部分以0来填充。另外本例还说明了如何对矩阵的多个元素进行扩展赋值,直接将一个列向量赋值给了扩展部分。

2.矩阵元素的删除

通过将行或列指定为空矩阵[],即可从矩阵中删除行和列。

【例2-13】 矩阵的删除。

>> A=magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> A(:,1)=[] % 删除矩阵A的第1列

A =

2 3 13

11 10 8

7 6 12

14 15 1

>> A(2,:)=[] % 删除矩阵A的第2行

A =

2 3 13

7 6 12

14 15 1

6.2 矩阵的重构

用户可以通过矩阵旋转,改变维数和截取部分元素来产生所需要的新矩阵。MATLAB提供了一些矩阵重构函数,如表2-9所示。

表2-9 常用的矩阵重构函数及说明

5e169ef05051

【例2-14】 矩阵的重构示例。

>> a=reshape(1:9,3,3) % 创建测试矩阵

>> a= [1,7;2,8;3,9;4,10;5,11;6,12] % 创建测试矩阵

a =

1 7

2 8

3 9

4 10

5 11

6 12

>> a = reshape(a,4,3) % 使用reshape改变a的形状,

% 注意前后两个a每一个单下标对应的元素是一致的

a =

1 5 9

2 6 10

3 7 11

4 8 12

>> b=rot90(a,3) % 将矩阵a逆时针旋转3×90°

b =

4 3 2 1

8 7 6 5

12 11 10 9>> c=fliplr(a) % 将矩阵a左右翻转

c =

9 5 1

10 6 2

11 7 3

12 8 4>> d=flipud(a) % 将矩阵a上下翻转

d =

4 8 12

3 7 11

2 6 10

1 5 9【例2-15】 矩阵部分元素的提取。

>> a=[1 2 3;4 5 6; 7 8 9] % 创建测试矩阵

a =

1 2 3

4 5 6

7 8 9

>> b=diag(a) % 求a的对角矩阵

b =

1

5

9

>> c=triu(a,1) % c矩阵第1条对角线及以上的元素取矩阵a的元素,其余为0

c =

0 2 3

0 0 6

0 0 0

>> d=triu(a,2) % d矩阵第2条对角线及以上的元素取矩阵a的元素,其余为0

d =

0 0 3

0 0 0

0 0 0

>> e=triu(a,-1) % e矩阵中除了第3行第1列元素为0,其余元素都取自矩阵a的元素

e =

1 2 3

4 5 6

0 8 9

>> f=tril(a,-1) % 下三角矩阵的提取

f =

0 0 0

4 0 0

7 8 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab中进行积分运算可使用函数`integral()`和`quad()`,其中`integral()`为定积分函数,`quad()`为割线法。实际使用中,需要根据积分函数特性选择合适的函数进行计算。 下面就举一个例子来说明如何使用这两个函数进行积分的处理: 考虑求解 $\int_{0}^{\pi/2}\sin(x)dx$ 的值。 - 使用integral()函数进行积分 首先,使用integral()函数对此积分进行求解。此函数使用方法如下: `integral(FUNC,A,B)`,其中,FUNC为被积函数,A为下限,B为上限。 该函数的输出为积分结果以及误差;使用该函数得到 $\int_{0}^{\pi/2}\sin(x)dx$ 的代码为: ```matlab f = @(x) sin(x); a = 0; b = pi/2; res = integral(f,a,b) ``` 最后输出的res即为积分结果。 - 使用quad()函数进行积分 割线法可以很好地处理一些比较复杂的积分函数。quad()函数与integral()函数类似,用法为: `quad(FUNC,A,B,TOL)`,其中,FUNC为被积函数,A为下限,B为上限,TOL为误差容限。 该函数的输出为积分结果以及经迭代计算得到的误差。对于上述积分函数,使用quad()函数进行积分的代码为: ```matlab f = @(x) sin(x); a = 0; b = pi/2; tol = 1e-8; I = quad(f,a,b,tol) ``` 最后输出的I即为积分结果。 以上代码均可输出积分结果,但在具体使用时,应该根据积分函数的特点选择合适的函数进行计算。 ### 回答2: Matlab是一种常用的科学计算软件,具有强大的数学计算功能。积分运算是数学中的重要部分,且在物理、工程、经济学等多个领域中都有应用。因此,在Matlab中编写积分代码是很有必要的。 Matlab中提供了多种积分函数,包括‘quad’、‘quadl’、‘quadgk’、‘integral’等。这些函数都可以用来计算定积分和不定积分。其中,‘quad’和‘quadl’函数可以计算一维定积分,而‘quadgk’和‘integral’函数则可以计算多维定积分。 下面是一个用Matlab编写一元函数f(x)的定积分代码的实例: syms x % 定义符号变量 f(x) = x^2+1; % 定义被积函数 a = 0; % 定义积分下限 b = 1; % 定义积分上限 integral(f,a,b) % 计算定积分 在Matlab中,首先需要定义符号变量,然后定义被积函数,接着定义积分下限和积分上限,最后调用‘integral’函数计算定积分。上述代码中的‘syms’语句用于定义符号变量,‘f(x) = x^2+1’语句用于定义被积函数。其中‘^’表示幂运算,‘+’表示加法运算。‘a = 0’和‘b = 1’语句用于定义积分下限和积分上限。最后,‘integral(f,a,b)’语句则用于计算定积分。 在Matlab中,还可以使用‘quad’和‘quadl’函数来计算一维定积分。 % 使用quad函数计算一元函数f(x)的定积分 syms x f(x) = x^2+1; a = 0; b = 1; quad(f,a,b) % 使用quadl函数计算一元函数f(x)的定积分 syms x f(x) = x^2+1; a = 0; b = 1; quadl(f,a,b) ‘quad’函数和‘quadl’函数的使用方式与‘integral’函数类似,只需要定义被积函数和积分下限、积分上限即可。 在Matlab中,使用积分函数时,还需要考虑浮点误差的问题。如果积分函数的误差较大,则可以考虑增加精度或使用其他积分函数。因此,在Matlab中计算积分时需要注意精度和误差的问题。 ### 回答3: MATLAB是一个非常流行的科学计算工具,可以用于许多数学运算,包括积分运算。在MATLAB中,可以使用多种方法来进行积分运算,根据不同的需求选择不同的方法来实现。下面是一个简单的例子,演示如何使用MATLAB进行积分运算。 例子:计算sin(x)在0到pi/2之间的积分。 step1:定义函数f(x)=sin(x) 使用MATLAB编写程序,需要先定义函数。在这个例子中,需要计算sin(x)的积分,因此我们需要定义一个函数来代表sin(x)。在MATLAB中,可以使用“function”命令来定义一个函数,指定函数名和变量。 例如:function y=f(x) y=sin(x); end 此处,“f”为函数名,“x”为变量,“sin(x)”为函数表达式。“end”是MATLAB的函数结尾标记。 step2:设置积分范围 确定积分范围非常重要,可以使用MATLAB中的“integral”命令来指定积分范围。 例如:I=integral(@f,0,pi/2) 此处,“@f”符号表示取出之前定义的函数f(x),然后将其作为参数传递给“integral”函数。0和pi/2是积分上下限,保存在向量中,并传递给“integral”函数。结果I将包含积分值。 step3:执行并显示结果 完成设置后,执行程序即可计算积分值。MATLAB的输出结果将显示积分的数值。 例如:disp(I) 此处,“disp”命令是MATLAB中的输出函数,用于显示结果。将积分的数值存储在变量“I”中后,使用“disp”命令将其显示出来。 以上就是一个简单的MATLAB积分运算代码示例,通过定义函数、设置积分范围并执行程序,实现了对sin(x)在0到pi/2之间的积分计算。对于更复杂的积分运算,可以使用其他方法和技巧来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值