内部の一般的な3通りの方法で使用されるセルの文字列を検索します。
この方法の一つ
>> C = {1,5,3,4,2,3,4,5,2,1};
index = find([C{:}] == 5)
index =
2 8
まず、方法[C {:}]で配列への細胞内の要素、操作、次いでアレイ行う見つける()関数は、文字列を検索するためにインデックスを返します。
そして、検索セル内の単一の文字で同時に数値データ型
この方法は、のみ(小数を含む)の数又は単一文字(単一文字)有効。
複数の文字のアクション次のエラーの場合:
>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
>> index = find([c{:}] == '5d')
错误使用 ==
矩阵维度必须一致。
次のエラーが発生する理由は、キーは[]の操作です。
レッツは、異なるタイプのデータの操作の違い[]を見てみましょう
- 複数の数値型、本質的にすべての変数の[]動作である変数、アレイへのシステムにおいては、数値配列を返します。
>> C = {1,5,3,4,2,3,4,5,2,1};
[C{:}]
ans =
1 5 3 4 2 3 4 5 2 1
- 複数の文字操作の[]を実行する変数は、本質的に実行される文字列の連結を、それが返さchar配列、文字格納各アレイ素子1の長さを
>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
[c{:}],class([c{:}])
ans =
15d34234521
ans =
char
右長文([C {}] ==「:加えて、研究は見つけ、見つかった 5D」) の単位長さ当たりのアレイに残さなければならない
問題文の先頭に戻るので、検索([C {:}] = =「5D」) 、等号の左辺は、n-1 *文字配列、* 2の右側に文字の配列であり、2が最小ユニット1の左側の右側の長さと等しくない場合、エラー:==寸法を使用して誤差行列は、一貫していなければなりません。
方法二
>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
index = find(strcmp(c,'5d'))
index =
2
同時に検索することができるのstrcmp()メソッド文字と文字列を
strcmp()メソッドは、数値取得することはできませんデータを。
>> c={1,'5',3,4,2,3,4,5,2,1};index = find(strcmp(c,5))
index =
空矩阵: 1×0
メソッドスリー
>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
>index = find(ismember(c,'5d'))
index =
2
あなたは取得することができ、文字列や単一の文字を
取得できない数値データ型を、
含めることはできません混在データ型のセルを(または数値と文字列が含まれています)検索されます。
遅く
>> c={1,'5d','5',4,2,3,4,5,2,1};
idx = find(ismember(c,'5'))
错误使用 cell/ismember (line 34)
类 cell 的输入 A 和类 char 的输入 B 必须为字符串元胞数组,除非其中某个输入为字符串。
概要
テーブルによって三つの方法の適用範囲をまとめます
方法 | データセルを取得するとの混合物が含まれています | 数値を取得 | 単一の文字を取得 | 文字列を取得 |
---|---|---|---|---|
この方法の一つ | √ | √ | √ | × |
方法二 | √ | × | √ | √ |
メソッドスリー | × | × | √ | √ |