【问题标题】:How would I exponentiate each element of a non-square matrix?我将如何对非方阵的每个元素求幂?
【发布时间】:2013-06-12 14:23:26
【问题描述】:

我有一个尺寸为 512 x 683 的矩阵,我希望通过将其分别提高到 0.8 和 1.2 来对其进行伽马变换。显然你不能将非方阵提升到幂,所以我想知道如何将矩阵的每个元素提升到 0.8 次方和 1.2 次方。

谢谢

【问题讨论】:

    标签: matlab exponentiation


    【解决方案1】:

    元素方面:

    newMat1 = oldMat.^0.8;
    

    newMat2 = oldMat.^1.2;
    

    【讨论】:

    • 一般来说,在运算符前面加一个点会改变矩阵运算符的含义,将矩阵视为不相关值的集合,每个值都单独处理。例如.* 对两个大小相同的矩阵执行逐元素乘法,而不是对具有共享边界的两个矩阵进行矩阵乘法。
    • @Nick 我收到一条错误消息,指出“整数只能提升到正整数幂”,关于如何解决这个问题的任何想法
    • @user2475404 首先将其转换为double 类型。 double(oldMat).^0.8。大多数 MATLAB 操作默认创建 double 类型,但听起来你有一个整数类型的矩阵。因此,MATLAB 拒绝将它们提升到会改变类型的权力。显式转换为 double 类型应该可以修复它。
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 2011-07-23
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多