2017-03-15 39 views
0

我面臨的問題如下:我已經給出了一個包含2個NaN的6x1數組,代表2個未知值。我想要做的是用符號值替換這些值(例如,x_1和x_2)。我不知道該怎麼做,如果我給了一個12x1陣列,例如10 NaN,我必須改爲X_1,X_2 ... X_10,以便之後使用解算器。用數組中的符號代替數字值

array = [0; 0; NaN; 0; 0; 0; 0; NaN; 0]; 

更改爲:

array = [0; 0; x_1; 0; 0; 0; 0; x_2; 0]; 

但它必須與不同的NaN的陣列的通用解決方案。

非常感謝您的幫助和時間。

+1

您不能擁有包含數字和符號變量的標準數組。所有條目必須具有相同的數據類型。您可以使用單元格數組來讓每個單元格包含不同的類型。但是這看起來很奇怪。你確定你需要混合數字和符號內容嗎? –

+0

Im給出了一個代表變量的NaN數組,但是由於我正在編程一個求解器,因此提供的數據可能有2,3,4個NaN是N個變量。所以簡而言之,我想找到第一個NaN被x_1替代,第二個由x_2替換...然後有一個帶有0和變量的數組來運行求解器。謝謝你的時間。 –

+0

所以你需要一個_symbolic_數組?如果是這樣的話,添加「符號數學」標籤,以便知識的人可以幫助 –

回答

1

可以使用sym功能:

array=sym(array); 
array(isnan(array))=sym('x_',[sum(isnan(array)),1]) 

說明: 第一行陣列的符號陣列轉換。第二個用sym函數創建的數字索引符號變量替換Nan元素。

+0

這正是我正在尋找的。非常感謝您的時間。 –