matlab中.*和*有什么区别

 我来答
嗳尔yr
2023-05-07 · TA获得超过1万个赞
知道小有建树答主
回答量:88
采纳率:100%
帮助的人:3.4万
展开全部

“.*”和“*”的区别:

  1. 在进行数之间的运算时“.*”和“*”是没有区别的,都是表示普通的乘法运算。例:m = 2,n = 3,m.*n = 6, m*n = 6。

  2. 在进行矩阵之间的运算时“.*”和“*”的意义就有所不同了。假设a,b表示两个矩阵,a*b表示矩阵a与矩阵b进行矩阵相乘,a.*b表示矩阵a中的元素与矩阵b中的元素按位置依次相乘,得到的结果将作为新矩阵中相同位置的元素。

    MATLAB 中用一个特殊的符号来区分矩阵运算和数组运算。在需要区分两者不同的时侯,把点置于符号前来指示这是一个数组运算(例如, .*)。线面给出的是一些常见的数组和矩阵运算。

    1. 数组加法:A+B,数组加法和矩阵加法相同。

    2. 数组减法:A-­B ,数组减法和矩阵减法相同。

    3. 数组乘法:A.*B,A 和 B 的元素逐个对应相乘,两数组之间必须有相同的形,或其中一个是标量。

    4. 矩阵乘法:A*B,A 和 B 的矩阵乘法,A 的列数必须和 B 的行数相同。

    5. 数组右除法:A./B,A 和 B 的元素逐个对应相除:A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量。

    6. 数组左除法:A.\B,A 和 B 的元素逐个对应相除:B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个是标量。

    7. 矩阵右除法:A/B 矩阵除法,等价于 A*inv(B), inv(B)是 B 的逆阵。

    8. 矩阵左除法:A\B 矩阵除法,等价于 inv(B)*A, inv(A)是 A 的逆阵。

    9. 数组指数运算:A.^B,AB中的元素逐个进行如下运算:A(i,j)^B(i,j),A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量。

    初学者往往混淆数组运算和矩阵运算。在一些情况下,两者相互替换会导致非法操作,MATLAB 将会报告产生了错误。在另一些情况下,两种运算都是合法的,那么这时 MATLAB进行错误的运算,并产生错误的结果。当我们进行方阵运算时,极易产生这样的错误。两个方阵具有相同的大小, 两者之间的数组运算和矩阵运算都是合法的, 但产生的结果完全不同。在这种情况下,你要万分的小心。

    楔形魔芋
    2023-05-07
    知道答主
    回答量:32
    采纳率:0%
    帮助的人:1万
    展开全部

    Matlab中.*和*有主要区别:

    * 代表矩阵乘法,而 .* 则代表逐元素乘法,也称为哈达玛积。矩阵乘法是用来计算两个矩阵之间的乘积,而逐元素乘法是将两个数组中对应的元素相乘得到一个新的数组。

    具体而言:

    一、两个维度相同的数组上进行 .* 运算时,对于第一维和第二维上的每对相应元素,.* 运算会将它们相乘得到一个新的数组,即这两个数组的逐元素积。例如:

    A = [1 2; 3 4];

    B = [5 6; 7 8];

    C = A .* B;

    % 结果为 C = [5 12; 21 32]

    二、* 运算则要求运算符左侧的矩阵的列数等于右侧矩阵的行数,即矩阵乘法要求参与运算的矩阵维度必须满足一定的条件。例如:

    A = [1 2; 3 4];

    B = [5 6; 7 8];

    C = A * B;

    % 结果为 C = [19 22; 43 50]

    其中,左侧矩阵 A 的列数为 2,与右侧矩阵 B 的行数相等,因此可以进行矩阵乘法运算。结果矩阵 C 的第一行,第一列元素的值为 A 的第一行元素与 B 的第一列元素积之和,即1*5+2*7=19,其他元素22=1*6+2*8,43=3*5+4*7,50=3*6+4*8。

    已赞过 已踩过<
    你对这个回答的评价是?
    评论 收起
    推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

    为你推荐:

    下载百度知道APP,抢鲜体验
    使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
    扫描二维码下载
    ×

    类别

    我们会通过消息、邮箱等方式尽快将举报结果通知您。

    说明

    0/200

    提交
    取消

    辅 助

    模 式