2013-09-22 55 views
0

在這段代碼中,我試圖讓矢量打印與3號替換每個元素,直到我到達的第一個數字小於50創建具有同時矢量循環Matlab的

z=[4 3 2 5 7 9 0 64 34 49]; 
counter=1; 

while counter<length(z) 
    if z(counter) >0 && z(counter) < 50 
      z(counter)=3; 

    end 
    counter=counter+1; 
end 
z 

相反的z(計數器)= 3 ....爲什麼不能用z = [z 3]替換它? 爲什麼我不能用z = [z 3]代替第五行代碼。 Matlab不會讓我這樣做 我對這個邏輯感到困惑。

+0

不是很清楚'z(counter = 3)'是什麼意思'...它沒有出現在你的代碼中。你的意思是'z(counter)= 3'? –

+0

你說你想替換元素「直到你達到你的第一個數字少於五十」但這不是你的代碼所做的。此外,您的第一個數字(即4)小於50,因此您所描述的內容對您的示例數據無效。它是否正確?或者你描述不正確? – Dan

回答

0

你可以做同樣的事情,在你的代碼

z(z<50 & z>0)=3; 

聲明z=[z 3]值3追加到矢量z,這似乎並不是你想要的。相反z(counter)=3替換當前元素索引counter3

+0

z(counter)= 3在第五行。我想知道爲什麼我不能用z = [z 3]替換它。我很困惑,爲什麼當我使用z = [z 3]時,matlab不讓我這樣做。 –

+0

@LindsayBaird我添加了一個解釋... –