matlab中for迴圈為什麼只執行了一次

2021-04-15 16:58:37 字數 3188 閱讀 6726

1樓:匿名使用者

把第二行的k=size(h0);換成k=length(h0);

因為size返回陣列[1,120],在後面的for裡變成了for i=1:1.

為什麼matlab中for迴圈只執行了一次?

2樓:天空一半沒有言

你的if語句是不是應該寫成n1>999再break出迴圈,不然就是一次就跳出迴圈了

matlab for迴圈怎麼只執行一次

3樓:匿名使用者

第一label(i:1)裡面的i:1是什麼意思?

如果是第i行,第一列要寫成label(i,1);

第二迴圈能夠執行,不是隻執行了一次,肯定是執行完了只是你的fprintf('i:%g j:%g tp:%g fp:%g fn:%g\n',i,j,tp,fp,fn)語句

在判斷條件elseif(label(i:1)==1 & predct(i:1)==-1)裡面

所以只有符合條件label(i:1)==1 & predct(i:1)==-1才會顯示

而你label(i:1)是返回label的第i個到第1個數只有當i=1時,能都返回一個數label(1)當i>2時,label(i:1)就會返回空矩陣所以只會有i=1時候的結果輸出

為什麼matlab中for迴圈只執行了一次

4樓:匿名使用者

是不是在bai進入for迴圈前的某個地方,或者出du了zhifor迴圈的某個地方忘dao記加分號了?

一般來說加專了分號是不顯示的屬,可以看下右邊豎著的滾動條那邊有紅色的錯誤或黃色的警告提示的,檢視一下如果有警告的話就有可能沒有加分號.

如果還是不行的話, 可以嘗試 新建一個變數,把i 賦值給它,再加分號

matlab中for迴圈為什麼只執行一次

5樓:

要麼是你的step等於一要麼是中間報錯了

matlab: 為什麼我的程式中for迴圈只執行了一次? 謝謝

6樓:匿名使用者

試一下我的修改:

work_3(nmat); %多行兩列的矩陣a_1 = a(:,1);

a_2 = a(:,2);

s1 = numel(unique(a_2)); % length(unique(a_2));

count = hist(a_2,unique(a_2));

p = 1; k = 1; q = count(1);

d = work_5(a_1,p,q);

for j = 1:(s1-1)

if (length(d) >= 3)

output = d;

sprintf('%4d',output);

d = ;

p = k + count(j);

q = q + count(j+1);

d = work_5(a_1,p,q);

k = p;

else p = p; q = q + count(j+1);

d = ;

d = work_5(a_1,p,q);

k = k + count(j);

endend

matlab for迴圈為什麼只執行1次

7樓:匿名使用者

其實你的程式已經滿足你的要求了,事實上,執行後workspace空間上反映的是最後一個回x3,也就答是x3迴圈到最後一個數值(100)後的x3值,當然他就是100了,如果你想要得到的是中間運算中的所有值,而非最終結果,那麼請看下面的程式:

a1 = 8.001;

z3 = 10;

k=0;

x3 = -100:100 ;

for x31=x3(1):1:x3(end)k=k+1;

if x31>=-8 &x31<=8

th1(k)=pi+atan(z3./(x31-a1));

else

th1(k) = atan(z3./(x31-a1));

endth2(k) = atan(z3./(x31+a1));end

8樓:化學工程

這個抄比循bai

環的效du

率高多zhi了dao

。clc;clear

a1 = 8.001;

z3 = 10;

x3 = -100:100

th=-sign(x3).*(x3>=-8&x3<=0).*(pi+atan(z3.

/(x3-a1)))+sign(x3).*(x3>0&x3<8).*(pi+atan(z3.

/(x3-a1))) +atan(z3./(x3-a1));

plot(x3,th)

9樓:祕弘徭盼芙

這個比迴圈的效率高多了專。屬

clc;cleara1=

8.001;z3=

10;x3

=-100:100

th=-sign(x3).*(x3>=-8&x3<=0).*(pi+atan(z3.

/(x3-a1)))+sign(x3).*(x3>0&x3<8).*(pi+atan(z3.

/(x3-a1)))

+atan(z3./(x3-a1));

plot(x3,th)

10樓:野澹壬孤蘭

第一label(i:1)裡面copy的i:1是什麼意思?

如果是bai第i行,第一列要寫成dulabel(i,1);

第二迴圈能夠zhi執行,不是隻執行了一次,肯dao定是執行完了只是你的fprintf('i:%g

j:%g

tp:%g

fp:%g

fn:%g\n',i,j,tp,fp,fn)語句在判斷條件裡面

所以只有符合條件label(i:1)==1&predct(i:1)==-1才會顯示

而你label(i:1)是返回label的第i個到第1個數只有當i=1時,能都返回一個數label(1)當i>2時,label(i:1)就會返回空矩陣所以只會有i=1時候的結果輸出

matlab 迴圈只執行一次

Matlab中怎麼利用for迴圈操作函式

syms x m 1 for k 1 5 ym cos m x m m 1 end matlab中for迴圈的使用 如果陣列a中第一行的1000個元素中有大於0.5的,則將這個元素重新賦值為1,其它情況 等於或小於0.5 則重新賦值為 1。m是讓rand函式產生多少列的陣列,rand 1,m 表示產...

matlab中的如何跳出while死迴圈

在matlab中,如沒有正確使用好while條件迴圈語句,很容易出現死迴圈 版現象。預防死迴圈的對策權 有 1 在while條件迴圈語句中,設定判斷語句,當條件不滿足時,直接執行 break 中斷語句,跳出迴圈 2 在while條件迴圈語句中,設定判斷語句,當條件不滿足時,直接執行 return 中...

matlab用break跳出迴圈

你在最內層迴圈裡面用一個標誌位,當滿足if的時候,你做兩件事 flag 1 break 這個時候就跳入第二層迴圈了,然後你在第二層加入判斷語句if flag 1 break 就跳入到外層迴圈了 請採納。matlab中怎麼跳出迴圈 拓展說明 matlab中有關控制迴圈的有三個命令,break,cont...