我有許多包含字符數組的大單元陣列(每個大約10000x100單元格),有時這些數字是字符串,有時候它們是'..'或'x'或類似的東西。 我想將這些單元格數組轉換爲數字矩陣(雙數組),以便所有「數字串」都是數字(雙精度)和所有其他的條目零。如何用字符串來隱藏大型混合單元陣列以在Matlab中快速加倍矩陣?
例子: 我:
C = {'-34635', '22', 'x', '..', '5'; '..' , 'x', '-343','1','..'};
我想:
C_new = [-34635, 22, 0, 0, 5; 0, 0, -343, 1, 0];
我可以str2num
或str2double
做到這一點,但它是可怕的慢。我已閱讀使用sprintf
和sscanf
的示例,但我無法使其工作。
任何有關如何實現這個快速非常讚賞的提示/建議。 謝謝:)
謝謝,我已經嘗試過,它的工作,這是真的,但它是非常緩慢。我正在尋找更快的方法。 –
關於'sscanf'你看到這個鏈接https://fr.mathworks.com/matlabcentral/answers/18509-cell-conversion-to-double –
我的想法是使用sprintf和sscanf完全從你發佈的第一個鏈接。但是由於您提到的原因,我無法使用它處理我的數據,即我的數據不僅包含數字。這就是我的問題。我怎樣才能解決一個單元格不僅數字。感謝您的幫助 –