引自免费微信小程序:皆我百晓生
在MATLAB中,当你使用逻辑运算符 && 和 || 时,它们的操作数必须是逻辑数组(逻辑值的数组),并且数组中的每个元素都参与逻辑运算。在你的代码中,你试图使用二维数组 qi_ye(i,j) 和 gongyinshang(i,j) 直接与标量值进行比较,这是不允许的。你需要对每一行分别进行比较并计数。
为了解决这个问题,你可以使用循环来遍历二维数组的每一行,并对每一行使用逻辑运算符进行比较。这样你可以知道每一行中有多少元素满足你的条件。下面是修改后的代码示例:
clc
clear
load a.mat
load b.mat
k = zeros(size(i)); % 初始化一个与i大小相同的零矩阵来存储计数结果
for n = 1:length(i) % 循环遍历每一行
row_count = 0; % 初始化当前行的计数为0
for m = 1:length(j) % 循环遍历每一行的每个元素
if gongyinshang(n, m) <= x2 && gongyinshang(n, m) >= x1 % 使用逻辑运算符比较当前元素的值
row_count = row_count + 1; % 如果满足条件,增加当前行的计数
end
end
k(n) = row_count; % 将当前行的计数结果存储到k的相应位置
end
disp(k); % 显示每一行的计数结果
在这个修改后的代码中,我们使用了两个嵌套的循环来遍历二维数组 gongyinshang 的每一行和每个元素。我们使用变量 row_count 来跟踪每一行满足条件的元素数量,然后将结果存储在 k 的相应位置。最后,我们显示每一行的计数结果。
