文字列を数値に変換
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ochi Kai
le 7 Nov 2022
Réponse apportée : Atsushi Ueno
le 8 Nov 2022
例えば変数A=["apple", "apple","banana", "orange"];
といった中に文字が入力されている変数があるとします。
これをapple=1,banana=2, orange=3だとしてA=[1,1,2,3]のように変換したいと考えています。
いくつか方法を試したのですが、上手くいかず困っています。
ご教授いただけると幸いです。
0 commentaires
Réponse acceptée
Shunichi Kusano
le 8 Nov 2022
カテゴリカル行列がうってつけな気がします。
A=["apple", "apple","banana", "orange"];
fruitsCat = categorical(A,["apple","banana","orange"]) % 第2引数は重複のない要素→これが順に1,2,3となる
uint8(fruitsCat) % カテゴリカルに対応する数値に変換
Plus de réponses (4)
Atsushi Ueno
le 7 Nov 2022
本質問の対象となるリリースはR2022a、下記回答はR2022bで導入された機能ですが、一応書いておきます。
fruits = ["apple","banana","orange"];
numbers = [1,2,3];
dic = dictionary(fruits,numbers)
A = ["apple","apple","banana","orange"];
dic(A) % arrayfunが要らない!
0 commentaires
交感神経優位なあかべぇ
le 8 Nov 2022
文字列一致判定で数値を代入する例を記述します。
A=["apple", "apple", "banana", "orange"];
Anum = zeros(1, length(A));
Anum(strcmp(A, "apple")) = 1;
Anum(strcmp(A, "banana")) = 2;
Anum(strcmp(A, "orange")) = 3;
disp(Anum);
0 commentaires
Atsushi Ueno
le 7 Nov 2022
mapObj = containers.Map(["apple","banana","orange"], [1,2,3])
A = ["apple","apple","banana","orange"];
arrayfun(@(x) mapObj(x),A)
0 commentaires
Atsushi Ueno
le 8 Nov 2022
type fruits.m % 添付のクラス定義ファイルを表示
A = ["apple","apple","banana","orange"];
Aenum = arrayfun(@(x) fruits.(x), A)
Anum = double(Aenum)
0 commentaires
Voir également
Catégories
En savoir plus sur コード生成 dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!