Conversion of Categorical to double

16 ビュー (過去 30 日間)
Lui
Lui 2019 年 5 月 1 日
編集済み: Lui 2019 年 5 月 1 日
Hello everyone'
I have a table with values created with a categorization that I do not know. I would like to convert these into double array for normal manipulation. However, the following code gives me a categorical array that cannot be manaipulated easily by normal operations.
y=table2array(Data(:,1));
Converting it into a double, it yield values that are not the same as what is contained in the table.
y1=grp2idx(y);
Can someone please explain what the vector y1 represents and how I can use that to get the double array that is not categorical.
thanks.

採用された回答

dpb
dpb 2019 年 5 月 1 日
編集済み: dpb 2019 年 5 月 1 日
y1 is a grouping variable of which bin each refers to; it will be in the range of 1:N where N is number of unique categories in the categorical variable (not all of which may be present in a subset of the original).
Just
v=double(Data(:,1));
will reproduce the underlying values of the categorical array.
But, what do you want to do with a categorical array that you can't seem to do as its existing type? One would presume it was created as categorical for a reason.
  2 件のコメント
Lui
Lui 2019 年 5 月 1 日
I have attached a table below. The table created as categorical. I need to create an array that can be multiplied or divided etc.
Data_1=table2array(Data(:,1)); % this gives me the catrogorical array
% this array cannot be multilied by a factor as a double array
v=double(Data_1(:,1)); % this gives me the unique categories
How do I retrieve a double array from the table which has categories so that I can have the same values as what is in the table but not categorical.
OR
How do I carry out a simple arithmetic operation like multiplcation on the categorical array? And can it be converted to a double array.
dpb
dpb 2019 年 5 月 1 日
How was that .mat file created to turn Column7 variable into categorical? I'd suggest going back to that step and fix your problem there--it does appear that those should have been doubles all along.

サインインしてコメントする。

その他の回答 (1 件)

dpb
dpb 2019 年 5 月 1 日
To answer the question posed,
Data.Column7=double(Data.Column7);
but see the comment above -- the better solution would be to fix the problem at the point it was created instead of cleaning up a mess later.
  1 件のコメント
Lui
Lui 2019 年 5 月 1 日
編集済み: Lui 2019 年 5 月 1 日
Thank you for the guidance. I have resolved it from the initial file. I did convert the excel file to string while importing it to matlab. Then I cahnged the file into a double.This excluded the categorical part. I appreciate.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCategorical Arrays についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by