English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB 文字列

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は、文字列の作成、結合、解析、比較および操作に使用される多くの文字列関数を提供しています。

以下の表は、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