开发者社区> 问答> 正文

有没有可能用matlab做两个二进制矩阵的乘法运算?结果也是二进制的

有没有可能用matlab做两个二进制矩阵的乘法运算?结果也是二进制的

展开
收起
知与谁同 2018-07-19 16:07:24 4035 0
2 条回答
写回答
取消 提交回答
  • 我是自己做了一个函数(才学习matlab,莫见笑),见下:
    function [out] = bin_matix_multi( matr1,matr2 )

    [a,b]=size(matr1);
    [c,d]=size(matr2);
    if b ~= c
    disp('The two matrixs can not multiply!!')
    else

    op_1=matr1*matr2;
    for i = 1:a
    for j = 1:d
    if mod(op_1(i,j),2)==0
    op_1(i,j)=0;
    else
    op_1(i,j)=1;
    end
    end
    end
    end
    out=op_1;
    end

    其中matr1,matr2是要相乘的两个函数,当然这两个矩阵就是1和0构成的。所以按照十进制运算,结果中会有偶数和奇数,如果是偶数说明按照二进制计算结果就是0,否则就是1;所以根据这个规律,我使用这个求余的判断式mod(op_1(i,j),2)==0。

    我这种当然不是从矩阵乘法计算的细节出发编的程序,只是有些取巧,不知达到要求没有
    2019-07-17 22:57:46
    赞同 展开评论 打赏
  • function [out] = bin_matix_multi( matr1,matr2 )

    [a,b]=size(matr1);
    [c,d]=size(matr2);
    if b ~= c
    disp('The two matrixs can not multiply!!')
    else

    op_1=matr1*matr2;
    for i = 1:a
    for j = 1:d
    if mod(op_1(i,j),2)==0
    op_1(i,j)=0;
    else
    op_1(i,j)=1;
    end
    end
    end
    end
    out=op_1;
    end

    其中matr1,matr2是要相乘的两个函数,当然这两个矩阵就是1和0构成的。所以按照十进制运算,结果中会有偶数和奇数,如果是偶数说明按照二进制计算结果就是0,否则就是1;所以根据这个规律,我使用这个求余的判断式mod(op_1(i,j),2)==0。
    2019-07-17 22:57:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载