MATLAB中的DEBLANK函数不是删除字符串中的空格吗?怎么deblank('fefsaf f')结果运行出来,还是有空格
deblankå½æ°æ¯ç¨æ¥å é¤å符串ä¸å°¾é¨ç©ºæ ¼çä¸ä¸ªå½æ°ã
å¨matlabä¸è¾å ¥help deblankå°±å¯ä»¥æ¥çå ¶ç¨æ³ï¼å¨éé¢é½æ详ç»ä»ç»ã
matlabå¤çå符串çå½æ°è¿æï¼
% strcmp æ¯è¾ä¸¤ä¸ªå符串æ¯å¦å®å ¨ç¸çï¼æ¯ï¼è¿åçï¼å¦åï¼è¿åå
% strncmp æ¯è¾ä¸¤ä¸ªå符串ån个å符æ¯å¦ç¸çï¼æ¯ï¼è¿åçï¼å¦åï¼è¿åå
% strcmpi æ¯è¾ä¸¤ä¸ªå符串æ¯å¦å®å ¨ç¸çï¼å¿½ç¥åæ¯å¤§å°å
% strncmpi æ¯è¾ä¸¤ä¸ªå符串ån个å符æ¯å¦ç¸çï¼å¿½ç¥åæ¯å¤§å°å
% isletter æ£æµå符串ä¸æ¯ä¸ªå符æ¶å¦å±äºè±æåæ¯
% isspace æ£æµå符串ä¸æ¯ä¸ªå符æ¯å¦å±äºæ ¼å¼å符ï¼ç©ºæ ¼ï¼å车ï¼å¶è¡¨ï¼æ¢è¡ç¬¦çï¼
% isstrprop æ£æµå符æ¯ä¸ä¸ªå符æ¯å¦å±äºæå®çèå´
% strfind(str,patten) æ¥æ¾strä¸æ¯å¦æpatternï¼è¿ååºç°ä½ç½®ï¼æ²¡æåºç°è¿å空æ°ç»
% findstr(str1,str2) æ¥æ¾str1åstr2ä¸ï¼è¾çå符串å¨è¾é¿å符串ä¸åºç°çä½ç½®ï¼æ²¡æåºç°è¿å空æ°ç»
% strmatch(patten,str) æ£æ¥pattenæ¯å¦åstræ左侧é¨åä¸è´
% strtok(str,char) è¿åsträ¸ç±charæå®çå符串åçé¨ååä¹åçé¨å
% blanks(n) å建ænä¸ªç©ºæ ¼ç»æçå符串
% deblank(str) è£åå符串çå°¾é¨ç©ºæ ¼
% strtrim(str) è£åå符串çå¼å¤´åå°¾é¨çç©ºæ ¼ï¼å¶è¡¨ï¼å车符
% lower(str) å°å符串ä¸çåæ¯è½¬æ¢æå°å
% upper(str) å°å符串ä¸çåæ¯è½¬æ¢æ大å
% sort(str) æç §å符çASCIIå¼å¯¹å符串æåº
% num2str å°æ°å转æ¢ä¸ºæ°åå符串
% str2num å°æ°åå符串转æ¢ä¸ºæ°å
% mat2str å°æ°ç»è½¬æ¢æå符串
% int2str ææ°å¼æ°ç»è½¬æ¢ä¸ºæ´æ°æ°åç»æçå符æ°ç»
å¨matlabä¸è¾å ¥help deblankå°±å¯ä»¥æ¥çå ¶ç¨æ³ï¼å¨éé¢é½æ详ç»ä»ç»ã
matlabå¤çå符串çå½æ°è¿æï¼
% strcmp æ¯è¾ä¸¤ä¸ªå符串æ¯å¦å®å ¨ç¸çï¼æ¯ï¼è¿åçï¼å¦åï¼è¿åå
% strncmp æ¯è¾ä¸¤ä¸ªå符串ån个å符æ¯å¦ç¸çï¼æ¯ï¼è¿åçï¼å¦åï¼è¿åå
% strcmpi æ¯è¾ä¸¤ä¸ªå符串æ¯å¦å®å ¨ç¸çï¼å¿½ç¥åæ¯å¤§å°å
% strncmpi æ¯è¾ä¸¤ä¸ªå符串ån个å符æ¯å¦ç¸çï¼å¿½ç¥åæ¯å¤§å°å
% isletter æ£æµå符串ä¸æ¯ä¸ªå符æ¶å¦å±äºè±æåæ¯
% isspace æ£æµå符串ä¸æ¯ä¸ªå符æ¯å¦å±äºæ ¼å¼å符ï¼ç©ºæ ¼ï¼å车ï¼å¶è¡¨ï¼æ¢è¡ç¬¦çï¼
% isstrprop æ£æµå符æ¯ä¸ä¸ªå符æ¯å¦å±äºæå®çèå´
% strfind(str,patten) æ¥æ¾strä¸æ¯å¦æpatternï¼è¿ååºç°ä½ç½®ï¼æ²¡æåºç°è¿å空æ°ç»
% findstr(str1,str2) æ¥æ¾str1åstr2ä¸ï¼è¾çå符串å¨è¾é¿å符串ä¸åºç°çä½ç½®ï¼æ²¡æåºç°è¿å空æ°ç»
% strmatch(patten,str) æ£æ¥pattenæ¯å¦åstræ左侧é¨åä¸è´
% strtok(str,char) è¿åsträ¸ç±charæå®çå符串åçé¨ååä¹åçé¨å
% blanks(n) å建ænä¸ªç©ºæ ¼ç»æçå符串
% deblank(str) è£åå符串çå°¾é¨ç©ºæ ¼
% strtrim(str) è£åå符串çå¼å¤´åå°¾é¨çç©ºæ ¼ï¼å¶è¡¨ï¼å车符
% lower(str) å°å符串ä¸çåæ¯è½¬æ¢æå°å
% upper(str) å°å符串ä¸çåæ¯è½¬æ¢æ大å
% sort(str) æç §å符çASCIIå¼å¯¹å符串æåº
% num2str å°æ°å转æ¢ä¸ºæ°åå符串
% str2num å°æ°åå符串转æ¢ä¸ºæ°å
% mat2str å°æ°ç»è½¬æ¢æå符串
% int2str ææ°å¼æ°ç»è½¬æ¢ä¸ºæ´æ°æ°åç»æçå符æ°ç»
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-07-15
因为deblank(str)中是从字符串str的结尾删除结尾的空白,从matlab的help文件中可以看出。
在tmp=l(i,j);这一句后面加上一句
tmp=double(tmp);
ZMax=max(max(I));后面也得加上
Zmax=double(Zmax);
就好了。另外你这个程序写的就是C代码,效率太低了啊。。完全不是matlab的编法。
顺便给程序优化了。这才是matlab程序,效率千差万别:
I=double(I);
ZMax=max(max(I));
ZMax=double(ZMax);
iSize=size(I);
TK=210;
U=(I+ZMax-2*TK)./((2*ZMax-2*TK));
Umin = min(U,1-U);
s=sum(sum(Umin));
D=2*s/(iSize(1)*iSize(2));
在tmp=l(i,j);这一句后面加上一句
tmp=double(tmp);
ZMax=max(max(I));后面也得加上
Zmax=double(Zmax);
就好了。另外你这个程序写的就是C代码,效率太低了啊。。完全不是matlab的编法。
顺便给程序优化了。这才是matlab程序,效率千差万别:
I=double(I);
ZMax=max(max(I));
ZMax=double(ZMax);
iSize=size(I);
TK=210;
U=(I+ZMax-2*TK)./((2*ZMax-2*TK));
Umin = min(U,1-U);
s=sum(sum(Umin));
D=2*s/(iSize(1)*iSize(2));
第2个回答 2009-09-04
因为deblank(str)中是从字符串str的结尾删除结尾的空白,从matlab的help文件中可以看出。本回答被提问者采纳