2014-02-27 40 views
1

我有一個大的單元陣列。我有3列是數字。這些列中的一些行是NaN。這會導致一個問題,當我把數據上傳到SQL Server(我不希望使用MATLAB函數插入)。轉換MATLAB的NaN到SQL空在單元陣列

到目前爲止我曾嘗試下面,

export_full = strrep(export_full(:, 6:9),'NaN','NULL'); 

其返回錯誤消息

電池元件必須是字符陣列。

我可以使用索引來解決這個問題,如果是的話怎麼辦?性能也是一個問題,因爲它的相當大的單元陣列。

編輯

我的單元陣列是一個10000×10個細胞 第1列是串 第2欄是字符串 第3欄是日期 柱4到10是數值

+0

你能提供一個小例子'export_full'嗎?它是一個細胞矩陣嗎? – Dan

+0

@丹請參閱export_full – mHelpMe

回答

1

我認爲這應該做的技巧(功勞如下:http://www.mathworks.com/matlabcentral/newsreader/view_thread/283735

ind = cellfun(@(x) any(isnan(x(:))), export_full) 
export_full(ind) = {'NULL'}; 
+0

感謝的是確實工作的定義。你能解釋@(x)究竟是什麼意思嗎? – mHelpMe

+1

它創建了被稱爲匿名函數。這使得cellfun調用該函數(即'isnan(X(:))'輸入'(X)'),而不必與其他任何地方創建實際的功能,您的陣列的每一個細胞。 – Dan