num2strでchar型になる理由
105 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
data10 (10000*19 double)を文字列変換するため、num2strを使用しました。
しかし変換後のデータがdata11 (10000*52 char) となっています。
この後の操作としてはcontainsを使う為、このままではエラーとなってしまいます。
初心者質問で恐縮ですが、自力では解決出来なかった為皆さんのご意見をよろしくお願いいたします。
Réponse acceptée
Atsushi Ueno
le 2 Fév 2023
Modifié(e) : Atsushi Ueno
le 2 Fév 2023
下記の事を知ると良いと思います。説明する事も難しいですが説明してみます。
- 二種類の異なる文字データ型がある
- 両者は次元が1段階異なる
型 スカラ ベクトル(1次元) 行列(2次元) cell 配列
char ’A' 'ABCDEF' ['ABCDEF'; 'GHIJKL'] {[n×m char] [o×p char] [q×r char]}
string "AB" ["AB","CD","EF"] ["AB","CD","EF"; "GH","IJ","KL"] {[n×m string] [o×p string] [q×r string] }
char 型の1文字は「文字スカラ」と呼ばれ、数値スカラと同じ次元を持ちます。
複数の文字は「文字ベクトル」と呼ばれる1次元配列データになります。
double('ABC') % 'A'のASCIIコードは65(0x41)
num2str(rand(3))
char 型で単語の区切りを持ったデータを実現するには cell 配列が必要です。
arrayfun(@num2str,rand(3),'uni',false)
A = ["AB","CD","EF"; "GH","IJ","KL"]
{A, A, A; A, A, A}
0 commentaires
Plus de réponses (1)
Hernia Baby
le 2 Fév 2023
Modifié(e) : Hernia Baby
le 2 Fév 2023
2 commentaires
Hernia Baby
le 2 Fév 2023
Modifié(e) : Hernia Baby
le 2 Fév 2023
ちなみにstring型の登場は2016bからに対して、num2strは2006a以前のものです。
ですのでstringはまだ登場していません。
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!