num2strでchar型になる理由
조회 수: 16 (최근 30일)
이전 댓글 표시
data10 (10000*19 double)を文字列変換するため、num2strを使用しました。
しかし変換後のデータがdata11 (10000*52 char) となっています。
この後の操作としてはcontainsを使う為、このままではエラーとなってしまいます。
初心者質問で恐縮ですが、自力では解決出来なかった為皆さんのご意見をよろしくお願いいたします。
채택된 답변
Atsushi Ueno
2023년 2월 2일
편집: Atsushi Ueno
2023년 2월 2일
下記の事を知ると良いと思います。説明する事も難しいですが説明してみます。
- 二種類の異なる文字データ型がある
- 両者は次元が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
추가 답변 (1개)
Hernia Baby
2023년 2월 2일
편집: Hernia Baby
2023년 2월 2일
댓글 수: 2
Hernia Baby
2023년 2월 2일
편집: Hernia Baby
2023년 2월 2일
ちなみにstring型の登場は2016bからに対して、num2strは2006a以前のものです。
ですのでstringはまだ登場していません。
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!