如何检查我的矩阵是否可以被 12 整除

How to check my matrix if its divisible by 12

我是 matlab 的新手,我 运行 遇到了一个小问题。我想检查生成随机数的矩阵是否可以被 12 整除。然后我想列出可以被 12 整除的数字的数量以及它们的总和。

clc
clear
format compact
a=4 
b=0 
N=50+a
R=randi([100+a,159+b], 1, N) % generate random no. from 100+a to 159 on a matrix 1xN
s1=0
N1=0
for i = 1
    for j= 1:N
        if rem(R,12)==0
            N1=N1+1;
            s1=s1+R(i,j);
        else
            N1=N1+0;
            s1=s1+0;
        end
    end
end
numberof1=N1
sum1=s1

您的代码无法正常工作,因为您正在调用 rem(R, 12)所有 元素的剩余部分)而不是 特定元素的剩余部分 (rem(R(i,j), 12)).

不过,更好的方法是删除 for 循环并生成一个逻辑矩阵,其大小为 R,即 true,当该数字可被 12 整除且 false 否则将整个矩阵传递给 rem.

is_divisible_by_12 = rem(R, 12) == 0;

然后我们可以使用这个逻辑数组作为 R

的索引来计算它们的总和
subset = R(is_divisible_by_12);

number = numel(subset);
s1 = sum(subset);