工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> MATLAB

MATLAB文字列をマスター:作成と活用ガイド

MATLABでの文字列作成は非常に簡単です。実際、これまで何度も使用してきました。例えば、コマンドプロンプトで以下を入力します。

ライブデモ
 my_string = 'Tutorials Point' 

MATLABは上記のステートメントを実行し、以下の結果を返します。

 my_string = Tutorials Point 

MATLABはすべての変数を配列として扱い、文字列は文字配列と見なされます。whosコマンドを使って、上記で作成した変数を確認してみましょう。

 whos 

MATLABは上記のステートメントを実行し、以下の結果を返します。

 Name Size Bytes Class Attributes my_string 1x16 32 char 

興味深いことに、uint8やuint16などの数値変換関数を使って、文字列の文字を数値コードに変換できます。char関数は整数ベクトルを文字に戻します。

例

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 my_string = 'Tutorial''s Point'; str_ascii = uint8(my_string) % 8ビットASCII値 str_back_to_char= char(str_ascii) str_16bit = uint16(my_string) % 16ビットASCII値 str_back_to_char = char(str_16bit) 

ファイルを実行すると、以下の結果が表示されます。

 str_ascii = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point str_16bit = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point 

長方形文字配列

これまで説明してきた文字列は1次元文字配列ですが、より多くのテキストデータを格納する必要があります。プログラムで多次元テキストデータを格納するには、長方形文字配列を作成します。

長方形文字配列を作成する最も簡単な方法は、2つ以上の1次元文字配列を垂直または水平に連結することです。

文字列を垂直に結合するには、以下のいずれかの方法を使用します。

例

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 doc_profile = ['Zara Ali '; ... 'Sr. Surgeon '; ... 'R N Tagore Cardiology Research Center'] doc_profile = char('Zara Ali', 'Sr. Surgeon', ... 'RN Tagore Cardiology Research Center') 

ファイルを実行すると、以下の結果が表示されます。

 doc_profile = Zara Ali Sr. Surgeon R N Tagore Cardiology Research Center doc_profile = Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center 

文字列を水平に結合するには、以下のいずれかの方法を使用します。

例

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt) 

ファイルを実行すると、以下の結果が表示されます。

 profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center 

文字列をセル配列に結合

これまでの説明から、異なる長さの文字列を結合するのは面倒だとわかります。配列内のすべての文字列の長さを揃える必要があるため、文字列の末尾に空白を追加して長さを調整してきました。

しかし、より効率的な方法は、結果の配列をセル配列に変換することです。

MATLABのセル配列は、異なるサイズと型のデータを配列に格納できます。セル配列は、長さの異なる文字列を格納するためのより柔軟な方法を提供します。

cellstr関数は、文字配列を文字列のセル配列に変換します。

例

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile) 

ファイルを実行すると、以下の結果が表示されます。

 { [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center } 

MATLABの文字列関数

MATLABには、文字列の作成、結合、解析、比較、操作のための多数の関数が用意されています。

以下の表に、MATLABの主な文字列関数の概要を示します。

関数 目的
文字配列へのテキスト格納、文字配列の結合など
blanks 空白文字の文字列を作成
cellstr 文字配列から文字列のセル配列を作成
char 文字配列(文字列)に変換
iscellstr 入力が文字列のセル配列かどうかを判定
ischar アイテムが文字配列かどうかを判定
sprintf データを文字列にフォーマット
strcat 文字列を水平に連結
strjoin セル配列内の文字列を単一の文字列に結合
文字列の部分識別、部分文字列の検索と置換
ischar アイテムが文字配列かどうかを判定
isletter アルファベット文字である配列要素
isspace スペース文字である配列要素
isstrprop 文字列が指定カテゴリかどうかを判定
sscanf 文字列からフォーマットデータを読み取り
strfind ある文字列を別の文字列内で検索
strrep 部分文字列を検索して置換
strsplit 指定区切り文字で文字列を分割
strtok 文字列の選択された部分
validatestring テキスト文字列の妥当性をチェック
symvar 式内のシンボリック変数を特定
regexp 正規表現マッチ(大文字小文字区別)
regexpi 正規表現マッチ(大文字小文字非区別)
regexprep 正規表現を使用して文字列置換
regexptranslate 文字列を正規表現に変換
文字列比較
strcmp 文字列比較(大文字小文字区別)
strcmpi 文字列比較(大文字小文字非区別)
strncmp 文字列の最初のn文字を比較(大文字小文字区別)
strncmpi 文字列の最初のn文字を比較(大文字小文字非区別)
大文字・小文字変換、空白の作成・削除
deblank 文字列末尾の空白を削除
strtrim 文字列の先頭と末尾の空白を削除
lower 文字列を小文字に変換
upper 文字列を大文字に変換
strjust 文字配列を揃える

例

以下の例は、上記の文字列関数のいくつかを示しています。

文字列のフォーマット

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 A = pi*1000*ones(1,5); sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A) 

ファイルを実行すると、以下の結果が表示されます。

 ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59 

文字列の結合

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 % 文字列のセル配列 str_array = {'red','blue','green', 'yellow', 'orange'}; % セル配列内の文字列を単一の文字列に結合 str1 = strjoin(str_array, "-") str2 = strjoin(str_array, ",") 

ファイルを実行すると、以下の結果が表示されます。

 str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange 

文字列の検索と置換

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 students = {'Zara Ali', 'Neha Bhatnagar', ... 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma',... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'}; % strrep関数は部分文字列を検索して置換 new_student = strrep(students(8), 'Reva', 'Poulomi') % 名を表示 first_names = strtok(students) 

ファイルを実行すると、以下の結果が表示されます。

 new_student = { [1,1] = Poulomi Dutta } first_names = { [1,1] = Zara [1,2] = Neha [1,3] = Monica [1,4] = Madhu [1,5] = Madhu [1,6] = Bhawna [1,7] = Nuha [1,8] = Reva [1,9] = Sunaina [1,10] = Sofia } 

文字列の比較

スクリプトファイルを作成し、以下のコードを入力します。

ライブデモ
 str1 = 'This is test' str2 = 'This is text' if (strcmp(str1, str2)) sprintf('%s and %s are equal', str1, str2) else sprintf('%s and %s are not equal', str1, str2) end 

ファイルを実行すると、以下の結果が表示されます。

 str1 = This is test str2 = This is text ans = This is test and This is text are not equal 

MATLAB

  1. MATLAB徹底解説:数値計算環境の決定版
  2. MATLAB変数の理解:基礎から実例まで徹底解説
  3. MATLAB必須コマンドリファレンス:効率的な計算のための完全ガイド
  4. MATLABデータ型完全ガイド:15種類の基本型と変換・判定関数
  5. MATLAB演算子完全ガイド:算術・論理・ビット演算・集合操作
  6. MATLAB行列完全マスター:作成・参照・操作・削除の基礎
  7. MATLAB:多次元配列と特殊配列をマスターする
  8. MATLABコロン演算子をマスター:ベクトル作成と効率的な反復処理
  9. MATLABの数値型:型、格納、変換
  10. MATLAB関数:定義、ワークスペース、入出力
  11. Java文字列をマスター:生成、メソッド、ベストプラクティス