今日問題が発生しました。Matlabを使用して2つの文字列のサイズを比較したかったのですが、それで十分だと思いました>、<、==
。これらの比較記号が論理行列を返すことを誰が知っていますか(通常、2つの文字列の長さが同じである必要があります)。インターネットで検索しました。「追加」とだけ言ってくださいall()、any()
。確かに、すべては[すべて]を意味し、すべては[1つだけ]を意味しますが、誰が大きいか、誰が小さいかを判断することはできません。matlabに付属のstrcmpは、2つの文字列が等しいかどうかしか判断できません(等しいはtrueです)。 、それ以外の場合はfalse)、誰が大きいか、誰が小さいかを判断できません。前任者が関数を書いているのを偶然見つけました。この関数の関数は、C言語のstrcmpに似ています。
- str1 <str2、1を返す
- str1 == str2、0を返す
- str1 <str2、-1を返す
次回ピットに入らないように抜粋してください。機能は次のとおりです。
function p=mstrcmp(str1,str2)
k=min(length(str1),length(str2));
for n=1:k %Compare the top k
if(str1(n)>str2(n))
p=1;break;
elseif(str1(n)==str2(n))
p=0;
else p=-1;break;
end
end
if(p==0)
if(length(str1)>length(str2)) %The first k bits are equal, but str1 is longer
p=1;
elseif(length(str1)==length(str2))
p=0;
else p=-1;
end
end
end