更改金额和暗淡
这行代码让你提高你的眉毛在迷惑?
c =总和(A, [1 - 2])
如果是这样,你可能不会让有经验的MATLAB用户仔细研究发布笔记的习惯,逐行,每六个月。所以,让我来告诉你关于这个变化总和和其他相关功能。
我认为总和作为一个vector-wise函数。它的基本定义是表示一个向量上的操作:总和(v),在那里v是一个矢量,返回一个标量元素之和v。
v = (1 2 3 4 5 6);总和(v)
ans = 6 * 7分2,愚蠢的。
为总和和许多其他功能,MATLAB具有宽容的定义术语“向量”。It can refer to a single column (Px1) or a single row (1xP). The expression总和(v)不在乎。
w = v的总和(w)
w = 1 2 3 4 5 6 ans =你不能愚弄我,答案仍然是21。
如何总和在一个矩阵?在这里我们只是爱魔术方块,特别是当我们谈论资金。
=魔法(3)
1 = 8 6 3 5 7 4 9 2
什么sum ()做什么?还记得我之前说过,我认为总和vector-wise函数,这意味着从根本上它作用于向量。如果你通过一个矩阵,矩阵作为一个治疗堆栈的向量。具体地说,它将把矩阵列向量的堆栈,计算每个人的总和。
sum ()
ans = 15 15 15
过去二十年(多一点)总和函数接受一个可选的参数,我们称之为昏暗的。这个观点让你改变总和将一个矩阵(或多维数组)视为一堆向量。例如,电话金额(2)告诉总和治疗一个堆栈的行向量,计算每一个的总和,导致一个包含行和列向量。
金额(2)
ans = 15 15 15
当然,幻方有相同的行和列的金额,这就是为什么一个魔法广场这个例子可能是一个糟糕的选择。然而,我的雇佣合同要求我使用魔法(3)在每一个机会。
现在,假设我有一个RGB图像,FMxNx3,我想计算三个组件的每个图像的总和,F (:,: 1),F (:,: 2),F (:: 3)吗?在MATLAB历史的大部分时间里,我们会告诉你:计算的列和然后计算行和结果。(或者你可以做其他方式的圆,得到同样的回答。)
F = imread (“peppers.png”);c =总和(sum (F, 1), 2)
c (:: 1) = 23746472 c (:,: 2) = 13054194 c (:,:, 3) = 11331211
好吧,假设我想计算的总和所有的元素F吗?历史的答案:转换F一个列向量使用表达式F (:)然后调用总和。
总和(F (:))
ans = 48131877
但这些编码模式所以R2018a。R2018b释放,昏暗的也可以是一个向量,它调用字符串“所有”(或“所有”)。计算的总和的三个组件图片现在可以:
sum (F [1 - 2])
ans (:: 1) = 23746472 ans (:,: 2) = 13054194 ans (:,:, 3) = 11331211
和计算的总和的三维数组的元素可以是:
总和(F (1 2 3))
ans = 48131877
或
sum (F,“所有”)
ans = 48131877
总结后的一切景象,似乎需要总结,你可以看看这些其他MATLAB vector-wise函数也有这个新的昏暗的行为:所有,任何,界限,马克斯,最小值,的意思是,中位数,模式,刺激,性病,var。
让我给你留下一点编程与这些功能相关的建议。如果你确定输入参数传递给一个函数是一个向量(因为你自己构造或计算的),那么您可以安全地使用输入语法,等等总和(v)。否则,我建议你总是提供可选的昏暗的参数避免某些模棱两可与MATLAB的宽容的定义“向量”。
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。