29、matlab算数运算汇总2:加、减、乘、除、幂、四舍五入

2024-06-10 10:12

本文主要是介绍29、matlab算数运算汇总2:加、减、乘、除、幂、四舍五入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、乘法:times, .*  

语法

C = A.*B 通过将对应的元素相乘来将数组 A 和 B 相乘。
C = times(A,B) 是执行 A.*B 的替代方法,

1)将两个向量相乘

代码及运算

A = [1 0 3];
B = [2 3 7];
C = A.*BC =2     0    21

2) 将两个数组相乘

代码及运算

A = [1 0 3; 5 3 8; 2 4 6];
B = [2 3 7; 9 1 5; 8 8 3];
C = A.*BC =2     0    2145     3    4016    32    18

2、 mtimes, * 矩阵乘法

语法

语法:C = A*B 是 A 和 B 的矩阵乘积
语法:C = mtimes(A,B) 是执行 A*B 这一操作的替代方法

1)将两个向量相乘

代码及运算

A = [1 1 0 0];
B = [1; 2; 3; 4];
C = A*BC =3

2) 将两个数组相乘

代码及运算

A = [1 3 5; 2 4 7];
B = [-5 8 11; 3 9 21; 4 0 8];
C = A*BC =24    35   11430    52   162

 3、prod数组元素的乘积

语法

B = prod(A) 返回 A 的数组元素的乘积。
B = prod(A,"all") 返回 A 的所有元素的乘积
B = prod(A,dim) 返回沿维度 dim 的乘积。
B = prod(___,nanflag) 指定包含还是省略 A 中的 NaN 值。

1)每列中元素的乘积

代码及运算

A=[1:3:7;2:3:8;3:3:9]
B = prod(A)A =1     4     72     5     83     6     9B =6   120   504

2) 逻辑输入的乘积

代码及运算

A = [true false; true true]
B = prod(A)A =2×2 logical 数组1   01   1B =1     0

3) 每行中元素的乘积

代码及运算

A=[1:3:7;2:3:8;3:3:9]
dim = 2;
B = prod(A,dim)A =1     4     72     5     83     6     9B =2880162

4) 排除缺失值的乘积

代码及运算

A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
B = prod(A,"omitnan")A =1.7700   -0.0050       NaN   -2.9500NaN    0.3400       NaN    0.1900B =1.7700   -0.0017    1.0000   -0.5605

4、 cumprod 累积乘积

语法

B = cumprod(A) 返回 A 的累积乘积,该累积乘积从 A 中大小大于 1 的第一个数组维度开始计算。
B = cumprod(A,dim) 返回沿维度 dim 计算的元素的累积乘积。
B = cumprod(___,direction) 可在上述任一语法的基础上指定计算方向。
B = cumprod(___,nanflag) 指定包含还是省略 A 中的 NaN 值。

1)向量的累计乘积

说明:说明:计算从 1 到 5 的整数的累积乘积。元素 B(2) 是 A(1) 和 A(2) 的乘积,而 B(5) 是元素 A(1) 至 A(5) 的乘积。

代码及运算

A = 1:5;
B = cumprod(A)B =1     2     6    24   120

2) 矩阵列中的累积乘积

代码及运算

A = [1 4 7; 2 5 8; 3 6 9]
B = cumprod(A)A =1     4     72     5     83     6     9B =1     4     72    20    566   120   504

3) 矩阵行中的累积乘积

说明:计算 A 的行的累积乘积。元素 B(3) 是 A(1) 和 A(3) 的乘积,而 B(5) 是 A(1)、A(3) 和 A(5) 的乘积。

代码及运算

A = [1 3 5; 2 4 6]
B = cumprod(A,2)A =1     3     52     4     6B =1     3    152     8    48

4) 不包括缺失值的累积乘积

代码及运算

A = [3 5 NaN 4; 2 6 NaN 9; 1 3 0 NaN]
B = cumprod(A,"omitnan")

5、除法rdivide, ./ 数组右除

语法 

x = A./B 用 A 的每个元素除以 B 的对应元素。

1)除以两个数值数组

代码及运算

A = [2 4 6 8; 3 5 7 9];
B = 10*ones(2,4);
x = A./Bx =0.2000    0.4000    0.6000    0.80000.3000    0.5000    0.7000    0.9000

2) 整数除法

代码及运算

a = int16(10);
b = int16([3 4 6]);
x = a./bx =1×3 int16 行向量3   3   2

3) 数组除以标量

代码及运算

C = 5;
D = magic(3);
x = C./Dx =0.6250    5.0000    0.83331.6667    1.0000    0.71431.2500    0.5556    2.5000

4) 将行向量和列向量相除

代码及运算

a = 1:2;
b = (1:3)';
a ./ bans =1.0000    2.00000.5000    1.00000.3333    0.6667

6、 ldivide, .\ 数组左除

语法

x = B.\A 用 A 的每个元素除以 B 的对应元素。

1)除以两个数值数组

代码及运算

A = ones(2,3);
B = [1 2 3; 4 5 6];
x = B.\Ax =1.0000    0.5000    0.33330.2500    0.2000    0.1667

2) 数值数组除以标量

代码及运算

c = 2;
D = [1 2 3; 4 5 6];
x = D.\cx =2.0000    1.0000    0.66670.5000    0.4000    0.3333

3) 将行向量和列向量相除

代码及运算

a = 1:2;
b = (1:3)';
b .\ aans =1.0000    2.00000.5000    1.00000.3333    0.6667

 7、power, .^  按元素求幂

语法

C = A.^B 计算 A 中每个元素在 B 中对应指数的幂。

1)计算向量每个元素的平方

代码及运算

A = 1:5;
C = A.^2C =1     4     9    16    25

2) 计算每个矩阵元素的倒数

代码及运算

A = [1 2 3; 4 5 6; 7 8 9];
C = A.^-1C =1.0000    0.5000    0.33330.2500    0.2000    0.16670.1429    0.1250    0.1111

3) 以列向量为指数对行向量按元素求幂

代码及运算

a = [2 3];
b = (1:3)';
a.^bans =2     34     98    27

4) 计算数的根

代码及运算

A = -1;
B = 1/3;
C = A.^B
C = nthroot(A,3)C =0.5000 + 0.8660iC =-1

8、mpower, ^ 矩阵幂

语法

C = A^B 计算 A 的 B 次幂并将结果返回给 C。

1)构造方阵

代码及运算

A = [1 2; 3 4];
C = A^2C =7    1015    22

2)矩阵指数

代码及运算

B = [0 1; 1 0];
C = 2^BC =1.2500    0.75000.7500    1.2500

9、transpose, .' 转置向量或矩阵

语法

B = A.' 返回 A 的非共轭转置,即每个元素的行和列索引都会互换。

1)实矩阵转置

代码及运算

A = magic(4)
B = A.'A =16     2     3    135    11    10     89     7     6    124    14    15     1B =16     5     9     42    11     7    143    10     6    1513     8    12     1

2) 复矩阵转置

代码及运算

A = [1 3 4-1i 2+2i; 0+1i 1-1i 5 6-1i]
B = A.'A =1.0000 + 0.0000i   3.0000 + 0.0000i   4.0000 - 1.0000i   2.0000 + 2.0000i0.0000 + 1.0000i   1.0000 - 1.0000i   5.0000 + 0.0000i   6.0000 - 1.0000iB =1.0000 + 0.0000i   0.0000 + 1.0000i3.0000 + 0.0000i   1.0000 - 1.0000i4.0000 - 1.0000i   5.0000 + 0.0000i2.0000 + 2.0000i   6.0000 - 1.0000i

10、 mod 除后的余数(取模运算)

语法

b = mod(a,m) 返回 a 除以 m 后的余数,其中 a 是被除数,m 是除数

1)标量被除后的余数

代码及运算

b = mod(23,5)b =3

2) 向量被除后的余数

代码及运算

a = 1:5;
m = 3;
b = mod(a,m)b =1     2     0     1     2

3)正值和负值被除后的余数

代码及运算

a = [-4 -1 7 9];
m = 3;
b = mod(a,m)b =2     2     1     0

4) 用负除数除后的余数

代码及运算

a = [-4 -1 7 9];
m = -3;
b = mod(a,m)b =-1    -1    -2     0

5)浮点值被除后的余数

代码及运算

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
m = 2*pi;
b = mod(theta,m)b =0    3.5000    5.9000    6.2000    2.7168         0

11、 rem 除后的余数

语法

r = rem(a,b) 返回 a 除以 b 后的余数,其中 a 是被除数,b 是除数。

1)标量被除后的余数

代码及运算

a = 23;
b = 5;
r = rem(a,b)r =3

2)向量被除后的余数

代码及运算

a = 1:5;
b = 3;
r = rem(a,b)r =1     2     0     1     2

3) 正值和负值被除后的余数

代码及运算

a = [-4 -1 7 9];
b = 3;
r = rem(a,b)r =-1    -1     1     0

4) 浮点值被除后的余数

代码及运算

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
b = 2*pi;
r = rem(theta,b)r =0    3.5000    5.9000    6.2000    2.7168         0

13、idivide 带有舍入选项的整除

语法

C = idivide(A,B) 将 A 的每个元素除以 B 的对应元素,朝零方向舍入到最接近的整数。
C = idivide(A,B,opt) 指定替代舍入选项:'fix'、'floor'、'ceil' 或 'round'。

 1)整数除法

代码及运算

A = int16([-7 -4 7 11]);
B = int16(10);
C = idivide(A,B)C =1×4 int16 行向量0   0   0   1

 2)两个整数数组相除

代码及运算

A = int64([-2 3]);
B = int64([3 5]);
C = idivide(A,B)C =1×2 int64 行向量0   0

3) 整数除法的舍入选项:用默认舍入选项 'fix' 将 A 除以 B 的每个元素。

 代码及运算

A = 2.0;
B = int32([-3 3 4]);
C = idivide(A,B)C = idivide(A,B,'floor')
C = idivide(A,B,'ceil')
C = idivide(A,B,'round')C =1×3 int32 行向量0   0   0C =1×3 int32 行向量-1    0    0C =1×3 int32 行向量0   1   1C =1×3 int32 行向量-1    1    1

这篇关于29、matlab算数运算汇总2:加、减、乘、除、幂、四舍五入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047875

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Java中的位运算和逻辑运算详解及其区别】

Java中的位运算和逻辑运算详解及其区别 在 Java 编程中,位运算和逻辑运算是常见的两种操作类型。位运算用于操作整数的二进制位,而逻辑运算则是处理布尔值 (boolean) 的运算。本文将详细讲解这两种运算及其主要区别,并给出相应示例。 应用场景了解 位运算和逻辑运算的设计初衷源自计算机底层硬件和逻辑运算的需求,它们分别针对不同的处理对象和场景。以下是它们设计的初始目的简介:

位运算:带带孩子吧,孩子很强的!

快速进制 在聊到位运算之前,不妨先简单过一遍二进制的东西。熟悉二进制和十进制的快速转换确实是掌握位运算的基础,因为位运算直接在二进制位上进行操作。如果不熟悉二进制表示,很难直观理解位运算的效果。 这里主要涉及二进制和十进制之间的互相转换。 十进制转二进制 十进制转二进制可以使用常见的 除2取余法 进行。每次将十进制除以2并记录所得余数,直到商为0,然后再将记录的余数 从下往上排列即

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.