當MATLAB出錯時,如何讓它停止出錯的地方

發布 科技 2024-08-03
10個回答
  1. 匿名使用者2024-01-31

    當MATLAB出錯時,如何讓它停在出錯的地方,然後像除錯一樣停在那裡,而不是僅僅顯示錯誤並跳出程式。

    1] 斷點也可以在 MATLAB 中設定,您可以在 M 檔案選單中找到,這非常簡單。

    2] 我不建議你使用斷點,但你想問的是,我怎樣才能更好地除錯 MATLAB 程式?不是嗎?

    例如,如果你除錯乙個迴圈,你可以在迴圈中新增乙個 disp() 語句,讓它輸出乙個你關心的變數,當它出錯時,你可以清楚地看到它。

    其餘部分也是如此。

    還有乙個子例程要逐一除錯,確認可以工作再放到主程式中引用,這樣可以避免你的程式太大導致除錯的麻煩,matlab跳出程式的原因有很多,即使讓你讓它突破斷點, 其實會帶來不好的結果,設定斷點後你就會明白我在說什麼。在正確的時間監控您關心的內容。

    附言:1]根據你的補充,你其實可以用減半的方法,這樣當程式執行到一半的時候,輸出乙個變數,如果正確的話,就意味著如果出了問題,可能是在迴圈的後半部分,依此類推,但是你的迴圈數量其實並不多,我處理的迴圈比你的複雜得多, 呵呵。不要緊張,慢慢來。

    2] 如有必要,您可以駐紮我。

    3]建議您經常來。

    看看呵呵。

  2. 匿名使用者2024-01-30

    dbstop if error;% 錯誤停止在錯誤的行處,通常寫在指令碼的開頭。

  3. 匿名使用者2024-01-29

    出現錯誤的原因是題主給出的matlab的**粗心大意,f的兩個表示式末尾少了乙個括號。 應該是。

    f=[30*cos(atan((y)/(, 30*cos(atan((y)/(;

    在更改後執行結果。

  4. 匿名使用者2024-01-28

    gradval=zeros(m,n);

    因為你以後不用,但是程式在執行時會生成這個變數,會占用時間和空間,所以會提示你。 這是乙個警告,而不是錯誤,對程式的結果沒有影響。

    在後續程式中,您的 diffx diffy 不會逐漸擴充套件其長度,因此您無需預先分配它。

    您的 diffx diffy 全部分配一次。 同樣,這是乙個警告。

    希望能得到乙個滿意的答案,謝謝。

  5. 匿名使用者2024-01-27

    MATLAB 問題的 dsolve() 函式的表示式是錯誤的。

    這應該說是系統的零輸入。

    syms y(t)

    d2y=diff(y,2);dy=diff(y,1);

    disp('系統零輸入')

    y=dsolve(d2y+3*dy+2*y==0,y(0)==3,dy(0)==4);

    y=simplify(y)

    ezplot(y),title('LTI 系統的零輸入')xlabel('t');ylabel('y(t)'系統的零狀態和全響應的表示式與系統的零輸入的表示式相似。

    執行結果。 由於**的實施時間較長,如有需要,可以在私聊中提供。

  6. 匿名使用者2024-01-26

    因為 >>k=0; t=-1;導致 t 不再是 500,從而導致在 [0:t-1] t 末尾生成矩陣時出錯。

    在最終圖前新增 t=500 或將圖中的 t 更改為 500; 例如。

    t=500;

    plot(zs,[0:t-1]/t,'-r',[0:tan(1):tan(1)*length(fz)-1]/(length(fz)),fz,'-g');

    結果:<>

  7. 匿名使用者2024-01-25

    這個 matlab** 錯了嗎? 錯誤出在 z-expression 上,出錯的原因是沒有使用好的點運算子。 不要改變重點,不要改變重點。 正確的寫法是:

    z=50./(;

  8. 匿名使用者2024-01-24

    由於 x,y 是 11 11 的矩陣,因此計算坐標系中點 (,0) 與坐標系中點之間的夾角的值 beta1 也是 11 11 的矩陣。 因此,需要四個 for 迴圈來計算。

    x=-5:5;y=0:10;[x1,y1] = meshgrid(x,y);

    m,n]=size(x1);

    m1,n1]=size(y1);

    for i=1:m

    for j=1:n

    for k=1:m1

    for l=1:n1

    x=x1(i,j);y=y1(k,l);

    if(x>>0)

    beta1(i,j)=atand(abs((y-0)./(x+;

    elseif(x<>0)

    beta1(i,j)=90+atand(abs((x+;

    elseif(x==

    beta1(i,j)=90;

    elseif(y==0&x>

    beta1(i,j)=0;

    elseif(y==0&x<

    beta1(i,j)=180;

    endend

    endend

    enddisp(beta1)

    執行結果。

    如果您仍有疑問,請再談一次。

  9. 匿名使用者2024-01-23

    這個程式錯誤太多了,很多地方都是莫名其妙的:

    1、原**第10行括號誤為全形,即“d(1)”應為“d(1)”;

    2、原**第16行括號誤認為方馬鈴薯括號,即“f[1]”應為“f(1)”;

    3.原文**第12行的c沒有定義,不知道原意是什麼,這裡盡量改成c;

    4.原**的第2-3行定義符號變數基本沒有效果(因為程式碼的第8行和第15行分別分配給變數),並刪除它們。 最初,有兩個 *** 定義為符號變數:

    1)C變成列向量,後面用到C的地方要注意轉換;

    2)a、b、c都是符號變數,第18行的結果也是符號型別,不能儲存到f。

    5.在原**第21行的迴圈中,由於t2的長度為10,因此需要保證g的長度與t2的長度相同才能繪製,因此將n+10改為10。

    修改後的**如下(需要注意的是,除了前兩個錯誤是容易判斷的語法錯誤外,後三個錯誤都是執行時錯誤,修改只是試圖猜測錯誤**的可能目的是什麼,但並不保證與作者的原意相同):

    cleara=[ ;b=cumsum(a);n=length(a);for i=1:(n-1) c(i)=(b(i)+b(i+1))/2;endc=c;d=a;d(1)=[d=d';e=[-c;ones(1,n-1)];c=inv(e*e')*e*d;c=c'舒琪茶; a=c(1);b=c(2);f=f(1)=a(1);for i=2:(n+10) f(i)=(a(1)-b/a)/exp(a*(i-1))+b/a;endg=g(1)=a(1);for i=2:

    10 g(i)=f(i)-f(i-1);endt1=2008:2012;t2=2008:2017;gplot(t1,a,'o',t2,g)

    執行結果。

  10. 匿名使用者2024-01-22

    y=2*log(t).*exp(t)*sqrt(pi)

    矩陣中相應元素的乘法稱為點的乘法

相關回答
7個回答2024-08-03

您可以先提前對工作專案進行合理的規劃和適當的安排,然後才能在目標明確、思路清晰的狀態下有條不紊地推進工作進度,使工作任務能夠按時完成,我們也可以在提醒工具的協助下開興, 對工作任務設定乙個粗略的提醒,以便在提醒通知的監督下提高執行能力,提高工作效率。

23個回答2024-08-03

最重要的是盡可能少地把碎片檔案放在系統盤上,比如安裝幾十個ks或者幾個MB的小程式,因為這樣會增加系統檢測系統檔案的時間,而大卷則沒有問題,比如單個檔案超過100MB。 但是,最好不要將其放在C盤中。 >>>More

20個回答2024-08-03

按快捷鍵:Ctrl + 滑鼠滾輪進行縮放。

快捷鍵,又稱快捷鍵或熱鍵,是指通過一些特定的鍵、鍵序或組合鍵完成操作,很多快捷鍵經常搭配使用,如Ctrl鍵、Shift鍵、Alt鍵、FN鍵、Windows平台下的Windows鍵和Mac上的Meta鍵。 鍵盤快捷方式可用於開啟、關閉和導航“開始”選單、桌面、選單、對話方塊和網頁,還可以在 Word 中使用快捷方式。 >>>More

23個回答2024-08-03

那個手機殼比你的手機還大,你可以試試熱脹冷縮,把手機殼放在冰箱裡放一段時間。 第二天,把它拿出來看看,如果不起作用,就換掉。

13個回答2024-08-03

學一會兒,玩一會兒。 工作和休息的結合是集中注意力的唯一途徑。