您的位置:

Matlab中sum函数的详解

一、sum函数matlab用法

sum(A, dim) 
sum(A)         
sum(___, 'double') 
sum(___, 'native')

sum函数用于计算数组A的元素值的总和。dim是指A的其中一个维度(1、2、3、...)默认情况下,如果dim参数不提供,则该参数默认为1。如果A是一个向量,则返回总和。如果A是一个矩阵,则列的总和返回一个包含行向量总和的向量。可以通过dim参数来计算行或列的总和。

sum函数和A有两个输入参数,可以用以下两种方式传递维度参数:

  • 使用后面的参数dim:该方法使用A,dim的组合来指定维度
  • 未使用dim:该方法只是将A作为一个参数

二、matlab sum函数求和

A = [1 2 3; 4 5 6; 7 8 9];
sum(A)  %对矩阵元素总和进行运算,结果[12 15 18]
sum(A,1)  %按列进行求和,结果[12 15 18]
sum(A,2)  %按行进行求和,结果[6; 15; 24]

上面的代码分别对矩阵A的各行各列进行求和。对于sum(A),是对整个矩阵的所有元素求和,结果是[12 15 18]。对于sum(A,1),按照列来求和,结果是[12 15 18],因为每一列都是[1;4;7]、[2;5;8]、[3;6;9]。对于sum(A,2),按照行来求和,结果是[6;15;24]。因为每一行都是[1 2 3]、[4 5 6]、[7 8 9]。

三、size函数matlab

A = magic(3);
size(A)   %返回3×3
size(A,1) %返回3
size(A,2) %返回3
numel(A)  %返回9

size函数可以用来获取矩阵的维数和大小。返回的是一个表示该维度大小的整数向量。numel函数返回矩阵中的元素个数。对于矩阵A来说,numel(A)=3×3=9。

四、reshape函数matlab

A = [1 2 3; 4 5 6; 7 8 9];
B = reshape(A,1,9);  %将A变为1行9列的向量B
C = reshape(A,1,numel(A)); %同上述语法
D = reshape(A,[],1); %这里指定第二个参数为空,A被转换为一个列向量

reshape函数用于将矩阵A变形为一个新的大小、维度的矩阵。新的大小和维度由参数指定。例如,B=reshape(A,1,9)将A矩阵重新排列为1行9列的矩阵。该函数返回一个表现出新矩阵的向量。在该示例中,B是[1 2 3 4 5 6 7 8 9]。

五、find函数matlab

A = [1,3,0,6; 2,0,8,4; 0,5,2,1];
[r,c,v] = find(A);  %搜索非零元素
r       %表示非零元素所在行的向量,结果为[1;1;2;2;2;3;3;3]
c       %表示非零元素所在列的向量,结果为[1;2;1;3;4;2;3;4]
v       %表示非零元素的值的向量,结果为[1;3;2;8;4;5;2;1]

在matlab中,find函数用于查找具有值的位置,在一个数组中搜索非零元素。如果数组是多维的,find函数将返回数组中每个非零元素的下标位置。如果输入的不是一个矢量,那么find函数将返回一个行向量或列向量,其中每个元素都表示一个非零元素的位置,对于数组A,find(A)返回一个包含每个元素位置,行向量/列向量的向量。在这个示例中,r、c、v是列向量,每个值都表示一个非零元素所在的行、列和该值的值。

六、max函数matlab

A = [1 3 5; 4 2 1];
[maxValue,maxIdx] = max(A) %输出maxValue [4 3 5],maxIdx [2 1 1]
[maxValue,maxRowIdx] = max(A,[],1) %按列比较,输出maxValue [4 3 5],maxRowIdx [2 1 1]
[maxValue,maxColIdx] = max(A,[],2) %按行比较,输出maxValue [5;4],maxColIdx [3;1] 

max函数用于返回数组或向量中所有元素的最大值和位置。max函数也可以沿着一个维度来比较所有元素的值。

在这个示例中,maxValue表示每列中最大元素的数组,输出结果是[4 3 5]。maxIdx是表示每列最大元素值的行号的数组,输出结果是[2 1 1]。如果没有指定维度,则默认在列中比较最大值。在这个示例中,[maxValue,maxRowIdx] = max(A,[],1)会返回A中每列的最大值和其对应的行号,同时忽略行中元素的比较。最后,[maxValue,maxColIdx] = max(A,[],2)比较了每行中的元素,返回每行中的最大值和其对应的列位置。

七、mean函数matlab

A = [1:10];
mean(A) %返回A中所有元素的平均值,结果是5.5000
mean(A, 2) %返回A的元素的行平均值,结果是5.5000
mean(A, 'all') %返回A中所有元素的平均值,结果是5.5000

使用mean函数可以计算数组或向量A的平均值。mean函数接受维度dim的维度参数作为第二个参数。默认情况下,该函数按照列计算平均值。将dim设置为2将按行计算平均值。在这个示例中,mean(A)返回A中所有元素的平均值(5.5),mean(A,2)返回A的行平均值(5.5),mean(A,'all')计算A的所有元素的平均值(5.5)。

八、plot函数matlab用法

x = linspace(-2*pi,2*pi,100);
y = sin(x);
plot(x,y,'r', 'LineWidth',2)
title('Example Plot')
xlabel('x')
ylabel('y')
grid on

在matlab中,plot函数用于绘制函数和数据。第一个参数是x轴上的值,第二个参数是y轴上的值。该函数接受一系列名称-值对,其中包括线条的线宽,线条的颜色等。例如,在上面的示例中,红色线条的宽度为2,使用了grid on函数来绘制网格。

九、cumsum函数matlab

A = [1 2 3; 4 5 6; 7 8 9];
B = cumsum(A) %对列值逐项求和
C = cumsum(A')' %对行值逐项求和

cumsum函数用于计算矩阵或向量中每个元素的累积和。对于数组A,cumsum(A)沿着每列进行计算。cumsum(A')'沿着行计算A的累积和。请注意,函数的结果是一个与输入数组/向量具有相同大小的矩阵。

十、sort函数matlab

a = [25, -50, 0, 20, 10];
[b, idx] = sort(a) %正序排序
[c,idx] = sort(a,'descend') %倒序排序

在matlab中,sort函数是用于将数值类型的数据类型进行排序。它主要有两个输出参数:键排序值和索引排序。键排序值是原始数组的排序副本,而索引数组提供键排序副本中各个元素的索引地址。例如,在排序后,b变量表示排序数组,idx变量表示排序数组元素在原始数组中的索引。c表示倒排序数组,idx变量仅指向c中元素的原始索引。例如,对于a=[25, -50, 0, 20, 10]进行sort(a)时,结果是[-50 0 10 20 25]和[2 3 5 4 1]。对于sort(a,'descend'),结果是[25 20 10 0 -50]和[1 4 5 3 2]。