【问题标题】:Matlab matrix Multiplication errorMatlab矩阵乘法错误
【发布时间】:2014-04-04 09:29:15
【问题描述】:

当我在 Matlab 中使用以下代码行进行两个矩阵相乘时

相乘 = singleMat * singleMatT;

然后它给了我这个错误..

???使用 ==> 时出错 此操作不完全支持整数数据类型。 至少一个操作数必须是标量。

请帮我解决matlab中两个矩阵的乘法..

【问题讨论】:

    标签: matlab matrix matrix-multiplication


    【解决方案1】:

    我猜 Matlab 不支持整数矩阵的矩阵乘法。试试:

    multiplied = double(singleMat) * double(singleMatT);
    

    multiplied = single(singleMat) * single(singleMatT);
    

    如果单精度就足够了。

    【讨论】:

    • @Mathias 现在我收到此错误>> multiplied = singleMat * double(singleMatT); ???使用 ==> mtimes 时出错 整数只能与同一类的整数或标量双精度数组合。 >> 相乘 = double(singleMat) * double(singleMatT); ???错误使用 ==> mtimes 内存不足。键入 HELP MEMORY 作为您的选项。 ://
    • 您的矩阵有多大?你真的想做矩阵乘法,还是想逐元素相乘?
    • @Mathias 它们是 18750 X 2 个矩阵。你可以说大! :)
    • 如果将 18750x2 与 2x 18750 矩阵相乘,则得到 18750x 18750 矩阵。对于双精度,每个元素使用(至少)8 个字节。那只是需要存储在 RAM 中的 3GB 数据。同样,您真的想将它们矩阵相乘还是仅按元素计算? (你的变量名表明,你真的想要那个。)
    • 那你最好找个内存更大的系统。该矩阵仍然是 1.5GB 大。重启电脑,只启动matlab只加载Matrix,再试一次。如果它失败了,你就不走运了。虽然它可以只计算矩阵,但如果你想使用它,你必须分块完成所有工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多