<で万博1manbetxMATLAB仿真软件APIから……<先前 文系社会人のMATLAB初体験記>下一个> 字符串型を使いこなそう——罗兰ブログから 邮寄人道次郎,2020年3月10日 7次浏览(最近30天 0喜欢| 2的评论 こんにちは,道家です。在宅勤務を始めて2週間目に入りました。早く状況が治まることを願っています。さて,今日はMathWorksブログの中で2番目に歴史の長い罗兰关于MATLAB的艺术(一番歴史が長いのはどれでしょう?)からのトピックを紹介します。それがちょっと地味な字符串型。字符串型はR2016bに新しく導入された型であり,従来の烧焦型に比べてテキストデータの扱いが容易になりました。2月19日の串东西の投稿では,罗兰はテキストデータの比較について書いています。烧焦型、 もしくは文字列の配列で良く使われる细胞配列の比較に使われるのが字符串比较函数、strcmpi、strncmp、strncmpiです。 内容 烧焦配列と细胞配列 字符串配列 ブログで良く取り上げられる字符串型 とっておきの字符串機能 おわりに 烧焦配列と细胞配列 cellChars={“书”,“书尾”,“周末”,“工作日”} cellChars = 1×4の细胞配列{‘书’}{“书挡”}{“周末”}{“工作日”}特定の文字列を比較するには字符串比较函数を使います。TF = strcmp (“书”cellChars) TF = 1×4の逻辑配列1 0 0 0先頭の文字を比較するにはstrncmpを使います。TF = strncmp (“书”,cellChars,4) TF=1×4の 合乎逻辑配列 1 1 0 0大文字,小文字を区別しない場合はstrcmpiやstrncmpiを使います。TF = strncmpi (“一周”,cellChars,4) TF=1×4の 合乎逻辑配列 0 0 1 1 字符串配列上記の例でも分かりますように,烧焦配列はシングルクォーテーション(')を使って定義します。それと違って,字符串型はダブルクォーテーション(")を使って定義します。しかも、それぞれの “単語” が一つの要素としてとらえられるので、普通に[]を使って配列を作成できます。字符串数组=[“书”,“书挡”,“周末”,“工作日”] stringArray = 1×4の字符串配列“书”“书挡”“周末”“工作日” 字符串でも烧焦と同様str *関数を使うことできます。TF=strcmp(stringArray,“书”) TF = 1×4の逻辑配列1 0 0 0それに加えて比較演算子も使えるようになります。TF = stringArray ~=“周末” TF=1×4の 合乎逻辑配列 1 1 0 1更に,テキスト解析っぽい関数(個人の見解)も加わりました。例えば,完全一致にはTF =匹配(stringArray,“周末”) TF=1×4の 合乎逻辑配列 0 0 1 0特定の文字の並びが存在するかを確認するには包含を使います。TF =包含(stringArray,“结束”) TF = 1×4の逻辑配列0 1 1 0他にも色々便利な関数が R2016bのタイミングで導入されました。是非確認してみてください。私のお気に入りは正規表現のライト版としてextractAfter、提取前、extractBetweenなどです。方法字符串 クラス字符串に対するメソッド:附加eraseBetween加入replaceBetween cellstr extractAfter le反向char extractBefore低排序组合extractBetween lt分裂包含通用匹配splitlines计数gt ne startsWith双重insertAfter或带endsWith方法垫strlength eq ismissing +上擦掉issorted取代 ブログで良く取り上げられる字符串型実は罗兰のブログでは結構字符串型の話が取り上げられています:字符串カテゴリーその中でも私のお勧めは字符串型が導入された時の紹介ブログです。あらゆる使い方について書いてあります。また,MathWorksブログ全体で見ても字符串はかなり取り上げられています。とっておきの字符串機能私のとっておきの字符串機能は字符串型と数値の連結です。MATLAB的答案などでよく聞く質問ですが,連番のファイル名を作成したい,という方いませんか。例えば、file1 file2 file3, file4, file5というファイル名を作成したいとしましょう。まず,烧焦配列だと为id=1:5名称1{id}=[“文件”num2str(id)];结束names1 names1 = 1×5の细胞配列{‘file1}{‘file2} {file3的}{‘file4} {' file5 '} arrayfunを使って無理やりループを無くすみたいなこともできます。ただ,これだと何やってんのかさっぱり分かりませんね。names2=arrayfun(@(x)[“文件”num2str (x)], 1:5,“UniformOutput”,错) names2 = 1×5の细胞配列{‘file1}{‘file2} {file3的}{‘file4} {' file5 '}これを字符串を使うとこんなにすっきりになります!names3 =“文件”+ (1:5) names3 = 1×5の字符串配列file1 file2”“file3”“file4”“file5”解説:+演算子が双型を字符串型に変換し,“文件”を1×5の配列に拡張し連結してくれる。こうなると,こんな面白い使い方も。前缀= [“abc”;“def”;“xyz”]名称=前缀+(1:5) 前缀= 3×1の字符串配列“abc”“def”“xyz”名称= 3×5の字符串配列“他们”“abc2”“abc3”“abc4”“abc5”“def1”“def2”“def3”“def4”“def5”“xyz1”“xyz2”“xyz3”“xyz4”“xyz5” おわりに以上,罗兰在MATLAB的艺术ブログからの紹介でした。この様に定期的に他のMathWorksブログに投稿されたネタを紹介し直すこともやっていきたいので,もし興味あるブログの記事がありましたらぜひコメントを残してください。发布与MATLAB®R2019b 遵循@jiro_MWJ | 你现在正在关注这篇博文 您将在中看到更新活动提要. 你可能会收到电子邮件,这取决于你的通知偏好. 类别: 機能と使い方 <で万博1manbetxMATLAB仿真软件APIから……<先前 文系社会人のMATLAB初体験記>下一个> 评论 要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。