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...