Replacing Empty Cells by NaN
72 ビュー (過去 30 日間)
古いコメントを表示
Muhammad Farooq Zia
2021 年 8 月 22 日
編集済み: Scott MacKenzie
2021 年 8 月 22 日
Hi Matlab Community,
I would appreciate some help. I am importing an excel .csv file into a table. This file has multiple cells as empty cells. However, once imported as table in Matlab, some empty cells are filled with NaN while others show {0×0 char}. (Refer below)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/718179/image.png)
I want to replace all empty cells in the table with NaN value, because using table2array function with {0×0 char} gives an error, which is as follows:
Error using table2array (line 37)
Unable to concatenate the table variables 'Var1' and 'Var16', because their types are double and cell.
Error in Berea_NTW1 (line 42)
node1 = table2array(node1Table) ;
Thanks a lot !!
1 件のコメント
採用された回答
Scott MacKenzie
2021 年 8 月 22 日
編集済み: Scott MacKenzie
2021 年 8 月 22 日
You can use fillmissing and specify the fill value for each column. Obviously, the fill values depend on the data type in the column. Here's an example:
T = table({'a' '' 'f' 'z'}', [1 2 nan 4]', [9 nan nan 5]', {'z' '' '' ''}')
T = fillmissing(T, 'constant', {'Oops!', 0, -1, 'Unknown'})
2 件のコメント
Scott MacKenzie
2021 年 8 月 22 日
編集済み: Scott MacKenzie
2021 年 8 月 22 日
You don't insert NaN in fillmissing. You insert the value you want to substitute for NaN, such as 0. Just look at my example code.
Also, since the columns in your table have different data types, you need to specify the replacement values according to the type of data in each column; i.e., you cannot use NaN as the replacement value for a column that contains char data. Again, see my example code.
その他の回答 (1 件)
Simon Chan
2021 年 8 月 22 日
T.Var1=NaN(size(T.Var1,1),1); % Replace T.Var1 by NaN
T.Var16=NaN(size(T.Var16,1),1); % Replace T.Var16 by NaN
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Tables についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!