基于另一个矩阵操作一个矩阵
Manipulate a matrix based on another matrix
我有一个变量 est
,它是 20x1
double,像这样:
12
15
68
85
0
25
3
...
和变量 k
也是 20x1
double,由 0
、1
或 2
组成,像这样:
1
2
0
1
0
0
2
...
我想更改 est
,以便如果 k(i)
不是 0
,则应删除 est(i)
,其中 i=1:20
。有人可以帮忙吗?
"blank" 是指 0 吗?
est(k(:,1)~=0, 1) = 0;
这段代码在做什么?
k(:,1)~=0
returns 一个 20 x 1 逻辑数组,在 k
的第一列非零的行处为真。然后,代码沿着第 1 列在 est
中寻址这些行,并将值设置为零。
这里是使用 For
循环语句的解决方案。让我知道这是否符合您的要求:
idxList = [];
for ii = 1:size(est,1)
if k(ii,1) == 0
idxList = [idxList ii];
end
end
est(idxList) = [];
该代码为它在变量 k
中找到的全零创建了一个索引列表。之后,它从变量 est
中删除与索引列表 idxList
.
中的值对应的所有值
我有一个变量 est
,它是 20x1
double,像这样:
12
15
68
85
0
25
3
...
和变量 k
也是 20x1
double,由 0
、1
或 2
组成,像这样:
1
2
0
1
0
0
2
...
我想更改 est
,以便如果 k(i)
不是 0
,则应删除 est(i)
,其中 i=1:20
。有人可以帮忙吗?
"blank" 是指 0 吗?
est(k(:,1)~=0, 1) = 0;
这段代码在做什么?
k(:,1)~=0
returns 一个 20 x 1 逻辑数组,在 k
的第一列非零的行处为真。然后,代码沿着第 1 列在 est
中寻址这些行,并将值设置为零。
这里是使用 For
循环语句的解决方案。让我知道这是否符合您的要求:
idxList = [];
for ii = 1:size(est,1)
if k(ii,1) == 0
idxList = [idxList ii];
end
end
est(idxList) = [];
该代码为它在变量 k
中找到的全零创建了一个索引列表。之后,它从变量 est
中删除与索引列表 idxList
.