工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
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 文字列内の文字を数値コードに変換します。 文字 関数は整数ベクトルを文字に変換します −

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

ライブデモ
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string)        % 8-bit ascii values
str_back_to_char= char(str_ascii)  
str_16bit = uint16(my_string)       % 16-bit ascii values
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 cell 配列は、さまざまなサイズと型のデータを配列に保持できます。 cell 配列は、さまざまな長さの文字列を格納するためのより柔軟な方法を提供します。

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 の文字列関数の簡単な説明を示しています −

機能 目的
テキストを文字配列に格納する関数、文字配列を結合する関数など
空白 空白文字列の作成
cellstr 文字配列から文字列のセル配列を作成
文字 文字配列(文字列)に変換
iscellstr 入力が文字列のセル配列かどうかを判断する
ischar item が文字配列かどうかを判断する
sprintf データを文字列にフォーマット
strcat 文字列を水平に連結
strjoin セル配列内の文字列を単一の文字列に結合
文字列の一部を識別し、部分文字列を検索して置換する関数
ischar item が文字配列かどうかを判断する
一文字 アルファベットの配列要素
スペース 空白文字の配列要素
isstrprop 文字列が指定されたカテゴリに属しているかどうかを判断する
sscanf 文字列から書式設定されたデータを読み取る
strfind 別の文字列内で 1 つの文字列を検索
strrep 部分文字列を検索して置換
strsplit 指定された区切り文字で文字列を分割
strtok 文字列の選択部分
検証文字列 テキスト文字列の有効性をチェック
symvar 式のシンボリック変数を決定
正規表現 正規表現に一致 (大文字と小文字を区別)
正規表現 正規表現に一致 (大文字と小文字を区別しない)
regexprep 正規表現を使用して文字列を置換
regexptranslate 文字列を正規表現に変換
文字列比較の関数
strcmp 文字列の比較 (大文字と小文字を区別)
strcmpi 文字列の比較 (大文字と小文字を区別しない)
strncmp 文字列の最初の n 文字を比較 (大文字と小文字を区別)
strncmpi 文字列の最初の n 文字を比較 (大文字と小文字を区別しない)
文字列を大文字または小文字に変更したり、空白を作成または削除したりする関数
デブランク 文字列の末尾の空白を取り除く
strtrim 文字列から先頭と末尾の空白を削除
文字列を小文字に変換
アッパー 文字列を大文字に変換
ストジャスト 文字配列の両端揃え

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

フォーマット文字列

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

ライブデモ
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 

ストリングスの結合

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

ライブデモ
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};

% Join strings in cell array into single string
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'};
 
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
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. Java 文字列
  2. MATLAB-概要
  3. MATLAB-変数
  4. MATLAB-コマンド
  5. MATLAB - データ型
  6. MATLAB - 演算子
  7. MATLAB - 行列
  8. MATLAB-配列
  9. MATLAB - コロン表記
  10. MATLAB-数値
  11. MATLAB-関数