フィルターのクリア

How to Compare value returned by regexp and another string ?

1 回表示 (過去 30 日間)
Zineb EL MORCHID
Zineb EL MORCHID 2016 年 4 月 3 日
編集済み: per isakson 2016 年 4 月 3 日
nameF='aa.txt';
cni =regexp (nameF, '.txt', 'split');
I want to compare cni with a String by using strcmp for exemple strcmp(cni,'aa') so I converted its type by using char(cni) since cni is cell but it still returns false even they have the same value. What am I missing here ?

採用された回答

per isakson
per isakson 2016 年 4 月 3 日
編集済み: per isakson 2016 年 4 月 3 日
"What am I missing here?" &nbsp I guess you are missing that
cni =regexp (nameF, '.txt', 'split');
returns a &nbsp<1x2 cell> array and that char(cni) returns a &nbsp<2x2 char> matrix
>> nameF='aa.txt';
cni =regexp (nameF, '.txt', 'split')
cni =
'aa' ''
>> char( cni )
ans =
aa
>> double( char( cni ) )
ans =
97 97
32 32
>>
instead use
strcmp( cni{1}, 'aa' )
or if 'aa.txt' is a filename
>> [ ~, name ] = fileparts('aa.txt')
name =
aa
>> strcmp( name, 'aa' )
ans =
1
  1 件のコメント
Zineb EL MORCHID
Zineb EL MORCHID 2016 年 4 月 3 日
Thank you so much , that was exactly what I want !

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 3 日
編集済み: Azzi Abdelmalek 2016 年 4 月 3 日
nameF='aa.txt';
cni =regexp (nameF, '.txt', 'split')
The result is
cni =
'aa' ''
then
strcmp(cni,'aa')
gives
1 0
What is the problem here?
  3 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 3 日
cni ={'aa' ''} is a 1x2 cell array
strcmp(cni,'aa') returns two result [1 0]; maybe what you to do is
any(strcmp(cni,'aa'))
Zineb EL MORCHID
Zineb EL MORCHID 2016 年 4 月 3 日
Yes, Thank You sir .

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by