基于另一个矩阵操纵矩阵

时间:2015-06-05 17:40:01

标签: matlab indexing

我有一个est变量20x1,如下所示:

12
15
68
85
0
25
3
...

和变量k也是20x1双倍由012组成,如下所示:

1
2
0
1
0
0
2
...

我想更改est,以便k(i)不是0,那么应删除est(i) i=1:20。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

"空白"你的意思是0?

k(:,1)~=0

这段代码在做什么?

k返回一个20 x 1逻辑数组,该数组在est的第一列非零的行中为true。然后,代码沿着第1列在<TabItem GotFocus="TabItem_OnGotFocus"> 中处理这些行,并将值设置为零。

答案 1 :(得分:0)

这是一个使用For循环语句的解决方案。如果这符合您要查找的内容,请与我们联系:

idxList = [];
for ii = 1:size(est,1)
    if k(ii,1) == 0
        idxList = [idxList ii];
    end
end
est(idxList) = [];

代码列出了它在变量k中找到的所有零的索引。之后,它会删除变量est中与索引列表idxList中的值对应的所有值。