2015-10-20 111 views
0

我正在執行八度中的輸入輸出計算。我在公式中有幾個矩陣/向量:從八度矩陣計算中省略零

F = f' * (I-A)^-1 * Y 

所有向量可能包含零。我想從計算中忽略它們,只是返回0。任何幫助將不勝感激!

米蘭達

回答

0

你是什麼意思時,你說「忽略它們」?

如果要從一個矢量除去零可以做到這一點:

octave:1> x=[1,2,0,3,4,0,5]; 
octave:2> x(find(x==0))=[] 
x = 

    1 2 3 4 5 

的邏輯是:X == 0將測試x的每個元素(在本情況下,測試是,如果它等於零)並且將返回0和1的(0的矢量,如果所述測試是該元素假,否則爲1)

所以:

octave:1> x=[1,2,0,3,4,0,5]; 
octave:2> x==0 
ans = 

    0 0 1 0 0 1 0 

這一發現()函數將返回任何非的索引值零元素它的說法,因此:

octave:3> find(x==0) 
ans = 

    3 6 

然後你只是索引和刪除,當你做這樣的事情:

octave:5> x([3, 6]) = [] 
x = 

    1 2 3 4 5 

但不是你查找()函數的輸出做(這在這種情況下

可以爲矩陣做同樣的矢量[3,6]):

octave:7> A = [1,2,0;4,5,0] 
A = 

    1 2 0 
    4 5 0 

octave:8> A(find(A==0))=[] 
A = 

    1 
    4 
    2 
    5 

則u選擇reshape()函數將其重新轉換爲矩陣。