2014-03-06 88 views
0

我有兩個問題,需要你的幫助。 這是我的代碼;總和,如果循環Matlab

for k=13:32 
    for j=53:64 
    if semana1(1,13)*Condicao_compra_energia >= semana1(1,53) & sum(semana1(1,k))< 800 
     Custo_compra_semana1=semana1(1,k)*semana1(2,k); 
     Total_Cost=sum(custo_compra_semana1); 
     Potencia_comprada=sum(semana1,k); 
     Sold =Potencia_comprada*semana1(1,53); 
     Profit = Sold-Total_Cost; 
    else ... 

    end 
    end 

我需要設置一個條件,看是否semana1(1,13)semana1(1,32)之間的總和小於800

但是,當我做總和一樣sum(semana1(1,k))我沒有得到的數字,如何總和我能解決這個問題嗎?

我的第二個問題是使用if條件後,當我把

Custo_compra_semana1 = semana1(1,k) * semana1(2,k); 
Total_Cost = sum(Custo_compra_semana1); 
Potencia_comprada=sum(semana1, k); 
Sold =Potencia_comprada*semana1(1,53); 
Profit = Sold-Total_Cost; 

我需要得到一個矩陣爲custo_compra_semana1,並且Total_Cost應該是這個矩陣的總和的總價值,但我在custo_compra_semana1中得到的不是矩陣,Total_Cost只給出custo_compra_semana1的最後一個值。

+1

只是一個問題,你有沒有創建的變量'sum',是嗎? – patrik

回答

1

週報(1,k)的標值,你應該指定一個範圍

sum(semana1(1,13:32))< 800 

要得到與Custo_compra_semana1矩陣,你需要乘兩個向量,而不是兩個標量

 Custo_compra_semana1=semana1(1,13:32)'*semana1(2,13:32); 
+0

感謝您對第二個問題的幫助,我用custo_compra = semana1(1,13:32)。* semana1(2,13:32)代替。 – user3103689

1

第一個問題:

爲了設置正確的情況下,你應該這樣做:

sum(semana1(1,13:32))< 800 

使用k只使用1號從數組semana1

第二個問題:

我無法迴應。你沒有得到一個矩陣出於同樣的原因(你使用的是1值)。此外,我不知道是否semana1是一個矩陣,什麼矩陣的一部分是你感興趣的內容。

+0

感謝您的幫助 – user3103689