For循环查找落入Matlab中指定区间的值
For-loop to find values falling into a specified interval in Matlab
在 Matlab 中,我有一个矩阵 pvals
,其中 size(pvals) = 210 x 210
。
我想要 "search" 矩阵使得 pvals
中的任何值都满足
pvals < 2.7613 or pvals > 0.3621405
然后我想要另一个矩阵 VALS
将该条目记录为 0
。所以最后我得到了这个矩阵 VALS
,它与 pvals
大小相同,但根据 pvals 中的相应值是否填充了 0's
和 1's
落入我指定的区间或之外。
我试过下面的 for-loop
for i=1:size(pvals,1)
if pvals(i) < 2.7613 && pvals(i) > 0.3621405
VALS(i) = 0;
else VALS(i) = 1;
end
end
但这会创建一个 1x210
矩阵 VALS
而不是 210x210
,我猜是因为我只是在 i=1:size(pvals,1)
中循环一次??
有人能帮忙吗?
谢谢
您不想在 Matlab 中为此使用循环:
VALS = ~(pvals < 2.7613 | pvals > 0.3621405);
顺便说一句,要修复你的循环(以及你在 Matlab 中所做的每个循环),你应该通过添加行来预分配内存
VALS = zeros(size(pvals));
循环之前。
这可以在 matlab 中一行完成:
VALS = pvals >= 2.7613 | pvals <= 0.3621405;
在 Matlab 中,我有一个矩阵 pvals
,其中 size(pvals) = 210 x 210
。
我想要 "search" 矩阵使得 pvals
中的任何值都满足
pvals < 2.7613 or pvals > 0.3621405
然后我想要另一个矩阵 VALS
将该条目记录为 0
。所以最后我得到了这个矩阵 VALS
,它与 pvals
大小相同,但根据 pvals 中的相应值是否填充了 0's
和 1's
落入我指定的区间或之外。
我试过下面的 for-loop
for i=1:size(pvals,1)
if pvals(i) < 2.7613 && pvals(i) > 0.3621405
VALS(i) = 0;
else VALS(i) = 1;
end
end
但这会创建一个 1x210
矩阵 VALS
而不是 210x210
,我猜是因为我只是在 i=1:size(pvals,1)
中循环一次??
有人能帮忙吗?
谢谢
您不想在 Matlab 中为此使用循环:
VALS = ~(pvals < 2.7613 | pvals > 0.3621405);
顺便说一句,要修复你的循环(以及你在 Matlab 中所做的每个循环),你应该通过添加行来预分配内存
VALS = zeros(size(pvals));
循环之前。
这可以在 matlab 中一行完成:
VALS = pvals >= 2.7613 | pvals <= 0.3621405;