English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MATLABで文字列を作成することは非常に簡単です。実際には、私たちはそれを何度も使用しています。例えば、コマンドプロンプトで以下のように入力します-
my_string = 'oldtoolbag.com'
MATLABは上記の文を実行し、以下の結果を返します-
my_string = oldtoolbag.com
MATLABはすべての変数を配列として、文字列をキャラクター配列として見なします。以下を使用してwhosコマンドを使用して上記に作成された変数を確認します-
whos
MATLABは上記の文を実行し、以下の結果を返します-
名前 サイズ バイト数 クラス 属性 my_string 1x16 32 char
面白いことに、数字変換関数、例えばuint8またはuint16文字列の文字をその数字コードに変換するために使用されます。char整数ベクトルをキャラクターに戻す関数-
スクリプトファイルを作成し、以下のコードを入力します-
my_string = 'w3codebox''s com'; str_ascii = uint8(my_string) %8アスキー値 str_back_to_char= char(str_ascii) str_16ビット = uint16(my_string) %16アスキー値 str_back_to_char = char(str_16ビット)
ファイルを実行したとき、以下のような結果が表示されます-
str_ascii = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com str_16ビット = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com
到目前为止,我们讨论的字符串是一维字符数组。但是,我们需要存储更多。我们需要在程序中存储更多维度的文本数据。这是通过创建矩形字符数组来实现的。
创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或多个一维字符数组。
您可以通过以下两种方式垂直组合字符串-
使用MATLAB连接运算符[],并用分号(;)分隔每一行。请注意,在此方法中,每行必须包含相同数量的字符。对于长度不同的字符串,应根据需要使用空格字符填充。
使用char函数。如果字符串的长度不同,char会用尾随空格填充较短的字符串,以便每行具有相同的字符数。
スクリプトファイルを作成し、以下のコードを入力します-
doc_profile = ['Zara Ali '; ... 'R・N・タゴール・カーディオロジー・リサーチ・センター'] 'R・N・タゴール・カーディオロジー・リサーチ・センター')
ファイルを実行したとき、以下のような結果が表示されます-
doc_profile = ザラ・アリ シニア・外科医 R・N・タゴール・カーディオロジー・リサーチ・センター doc_profile = ザラ・アリ シニア・外科医 R・N・タゴール・カーディオロジー・リサーチ・センター
以下の2つの方法で文字列を水平に結合できます-
MATLABの結合演算子を使用します[]また、カンマまたはスペースで入力文字列を区切ります。この方法では、入力配列のすべての末尾のスペースを保持します。
文字列結合関数strcatを使用して、入力から末尾のスペースを削除します。
スクリプトファイルを作成し、以下のコードを入力します-
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; プロフィール = [name ', ' position ', ' worksAt] プロフィール = strcat(name, ', ', position, ', ', worksAt)
ファイルを実行したとき、以下のような結果が表示されます-
プロフィール = ザラ・アリ、シニア・外科医、R・N・タゴール・カーディオロジー・リサーチ・センター プロフィール = ザラ・アリ、シニア・外科医、R・N・タゴール・カーディオロジー・リサーチ・センター
前の議論から明らかに、長さが異なる文字列を結合することは厄介で、配列内のすべての文字列が同じ長さである必要があります。私たちは文字列の末尾にスペースを使用して、その長さを等しくしました。
しかし、結果の配列をセル配列に変換することで、文字列を組み合わせるより効果的な方法があります。
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の文字列関数の概要を紹介しています-
機能 | 作用 |
---|---|
テキストをキャラクターアレイに格納する、キャラクターアレイを組み合わせるなどの関数 | |
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'}; %セル配列の文字列を1つの文字列に結合 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