MATLAB 运算符作为函数

2023-12-23

我只是好奇MATLAB中的所有运算符是否在内部都是作为函数实现的?我们为几乎所有 MATLAB 运算符提供了等效函数。plus for +, minus for -, eq for == and transpose for '.


大多数运算符都是由函数表示的,是的。

MathWorks 页面上提供了完整的列表为您的类实现运算符 http://www.mathworks.com/help/matlab/matlab_oop/implementing-operators-for-your-class.html,转载于此:


a + b               plus(a,b)         Binary addition
a - b               minus(a,b)        Binary subtraction
-a                  uminus(a)         Unary minus
+a                  uplus(a)          Unary plus
a.*b                times(a,b)        Element-wise multiplication
a*b                 mtimes(a,b)       Matrix multiplication
a./b                rdivide(a,b)      Right element-wise division
a.\b                ldivide(a,b)      Left element-wise division
a/b                 mrdivide(a,b)     Matrix right division
a\b                 mldivide(a,b)     Matrix left division
a.^b                power(a,b)        Element-wise power
a^b                 mpower(a,b)       Matrix power
a < b               lt(a,b)           Less than
a > b               gt(a,b)           Greater than
a <= b              le(a,b)           Less than or equal to
a >= b              ge(a,b)           Greater than or equal to
a ~= b              ne(a,b)           Not equal to
a == b              eq(a,b)           Equality
a & b               and(a,b)          Logical AND
a | b               or(a,b)           Logical OR
~a                  not(a)            Logical NOT
a:d:b               colon(a,d,b)      Colon operator
a:b
colon(a,b)               
a'                  ctranspose(a)     Complex conjugate transpose
a.'                 transpose(a)      Matrix transpose
command line output display(a)        Display method
[a b]               horzcat(a,b,...)  Horizontal concatenation
[a; b]              vertcat(a,b,...)  Vertical concatenation
a(s1,s2,...sn)      subsref(a,s)      Subscripted reference
a(s1,...,sn) = b    subsasgn(a,s,b)   Subscripted assignment
b(a)                subsindex(a)      Subscript index
  

另一个寻找列表的好地方实际上是文档bsxfun http://www.mathworks.com/help/matlab/ref/bsxfun.html,它应用任何具有非常强大的虚拟数据复制的逐元素函数。


经常有用的是vertcat. 水平的 http://www.mathworks.com/help/matlab/ref/horzcat.html vs. vertical http://www.mathworks.com/help/matlab/ref/vertcat.html与逗号分隔列表的串联:

>> c = {'a','b'};
>> horzcat(c{:}) % [c{1} c{2}]
ans =
     ab
>> vertcat(c{:}) % [c{1};c{2}]
ans =
    a
    b

除了许多其他记录的具有命名函数的运算符(colon,transpose等),您可以使用一些未记录的内容来访问builtin http://www.mathworks.com/help/matlab/ref/builtin.html:

插入语

>> x = [4 5 6];
>> builtin('_paren',x,[2 3])  % x([2 3])
ans =
     5     6

大括号

>> c = {'one','two'};
>> builtin('_brace',c,2)  % c{2}
ans =
two

结构体字段访问(点)

>> s = struct('f','contents');
>> builtin('_dot',s,'f')  % s.f
ans =
contents

However,请注意正确且受支持的使用方式(), {}, or . is via subsref http://www.mathworks.com/help/matlab/ref/subsref.html, subasgn, and subindex,取决于上下文。

这些内置函数引用了中描述的运算符help paren。另请探索中列出的标点符号help punct.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB 运算符作为函数 的相关文章

  • 使用 lsqcurvefit 进行拟合

    我想将一些数据拟合到洛伦兹函数 但当我使用不同数量级的参数时 我发现拟合存在问题 这是我的洛伦兹函数 function value lorentz x x0 gamma amp value amp gamma 2 x x0 2 gamma
  • MATLAB:生成给定三种颜色的颜色图

    我正在尝试在 MATLAB 中生成给定三种颜色 最高值 零值和最低值 的颜色图 我的思维过程是从最高端到中间循环 并将每个步骤存储到一个 3xN 第一列是 R 第二列是 G 第三列是 B 矩阵 所以我正在使用 fade from high
  • 带 if 语句的可向量化 FIND 函数 MATLAB

    我有一个矩阵u 我想遍历所有行和所有列并执行以下操作 如果元素非零 我返回行索引的值 如果元素为零 则查找该元素之后的下一个非零元素的行索引 我可以使用两个带有 find 函数的 for 循环轻松完成此操作 但我需要多次执行此操作 不是因为
  • 使用 libsvm 交叉验证后重新训练

    我知道交叉验证用于选择好的参数 找到它们后 我需要在不使用 v 选项的情况下重新训练整个数据 但我面临的问题是 在使用 v 选项训练后 我得到了交叉验证精度 例如 85 没有模型 我看不到 C 和 gamma 的值 在这种情况下我该如何重新
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何读取 10 位原始图像?其中包含 RGB-IR 数据

    我想知道如何从我的 10 位原始 它有 rgb ir 图像数据 数据中提取 RGB 图像 如何使用 Python 或 MATLAB 进行阅读 拍摄时的相机分辨率为 1280x720 室内照片图片下载 https drive google c
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 如何获取活动对象 MATLAB GUI 的句柄

    我正在尝试使用 MATLAB GUI 创建日历 我有两个Edit Text对象 edittext1 and edittext2 我想做这个 我把光标放在edittext1然后在日历中选择日期 它会进入文本字段edittext1 同样对于ed
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma

随机推荐