2017-02-13 32 views
0

讓我們假設我們有一些代碼。在Matlab編輯器中:Matlab,擺脫使用一個班輪的循環

x = zeros(1,10); 
x(1,1) = 2; 
for k = 1: 9 
    x(k+1) = 10 * x(k); 
end 

是否可以在沒有for循環的情況下編寫方程?

+0

至少試着指定要使用的語言。 – Jarvis

回答

2

試試這個:

x = 2 * 10.^(0:9); 

希望有所幫助。

+0

謝謝。當乘數不是10時,如何寫相同的方程。而不是10,它將是2乘2的矩陣。當矩陣的矩陣顯示提示:矩陣維度必須同意時,它在Matlab中產生錯誤。 –

+1

從Matlab 2016b開始,Matlab自動實現隱式矩陣擴展,所以這對我很有用。看到這篇文章:https://blogs.mathworks.com/loren/2016/10/24/matlab-arithmetic-expands-in-r2016b/ –

0

退房的LOGSPACE功能: X = 2 * LOGSPACE(0,9,10)

0

你有一個錯誤,因爲它違背了矩陣乘法的規則。 我的解決方案下面,我用matlab的免費模擬 - 八度,它具有類似的語法:

X=randint(2) % Matrix of size 2 by 2 
X = 

    1 0 
    0 0 

Y=2 * 10.^X(:) 
Y = 

    20 
    2 
    2 
    2 

你必須乘以矩陣只有這種類型的權利:

的M×ññ X P

結果是以下尺寸的矩陣:

的M×P


參見:

Element-wise multiplication

Element-wise power


我希望這有助於