matlab 新手求分析 這段程式總是出錯

2022-02-17 18:26:19 字數 1140 閱讀 2671

1樓:匿名使用者

你的這一句:

m2=strcat('e:\plif\c』,m1,'\',n1,'\',n1,'','-0000000',istr,'.bmp');

其中'e:\plif\c』

右邊的那個單引號是全形字元,所以導致引號匹配混亂,本來作為目錄分隔符的「\」被當作除號使用,所以導致出錯。

其實像你這個生成路徑名的語句完全可以寫成下面這樣的:

m2=sprintf('e:\\plif\\c%i\\%s\\%s-0000000%i.bmp',m,n1,n1,i);

或者,更簡練的

m2=sprintf('e:\\plif\\c%i\\%s\\%s-%07i%i.bmp',m,n1,n1,0,i);

幾點說明:

(1)前面的m1定義可以不要;

(2)printf系列函式的格式化字串以「\」和「%」作為格式控制符,需要「\」的地方應寫成「\\」,需要「%」的地方應寫成「%%」;

(3)如果整數轉換成字串希望帶前導0,可以使用類似這樣的用法:sprintf('%010i',i),其結果字串長度為10,如果i<1e9,則前面會補上相應個數的0;

(4)關於printf系列函式的格式化字串的其它規定,掌握了之後可以幫你靈活控制輸出格式,但話題比較大,一言難盡,感興趣可以再進一步研究,花點時間也是值得的。其實int2str之類的函式也是通過sprintf實現的。

2樓:

這一句出問題了:m2=strcat('e:\plif\c』,m1,'\',n1,'\',n1,'','-0000000',istr,'.bmp');

可以在前面重新定義一下常量字串:conststing = '-0000000';

然後這行改為

m2=strcat('e:\plif\c',m1,'\',n1,'\',n1,'',conststing,istr,'.bmp');

將不再報這個錯。

估計strcat函式處理的時候出了問題,最好裡面的都用字串變數不容易出錯

3樓:書宬

id(j)=mu(j)./mu(1); % mu(1)=0, 不能作為除數

4樓:匿名使用者

數列的維度不一樣,你檢查一下

matlab裡這段程式的意思,這段matlab程式是什麼意思

ii是一個bai 矩陣 你這裡是1行2列的矩陣 du ii 1 矩陣ii中的第一個元素zhi 按列優先原則排序dao ii 2 3 矩陣專ii中的第屬2到第3個元素組成新的矩陣。ii 2,3 矩陣ii的第二行,第三列的元素所以你的 的意思就是 定義ii 是一個1行2列的矩陣,兩個元素都是1迴圈兩次 ...

這段matlab程式是什麼意思這段matlab的程式是什麼意思啊

sys1 tf 1 0.4,1 inputdelay 0.76 dsys1 c2d sys1,ts,zoh num1,den1 tfdata dsys1,v sys1 tf 1 0.4,1 inputdelay 0.76 系統傳遞函式 dsys1 c2d sys1,ts,zoh 轉化成dz函式 nu...

請問這段程式是什麼意思,這段matlab程式是什麼意思

if bai i 5 printf n 當 i 等於du 5,zhi10,15,20 時,i 能被dao5 除盡,這時,i 5 等於 0,i 5 等於 1,這時,條件語回句 條件 為 真,於 答是 執行 printf n 也就是換一行。迴圈語句 i 1,步長 1,迴圈到 24,i 等於 5,10,1...