簡體   English   中英

如何在Matlab中為相同變量但為不同的對應函數賦值?

[英]How to assign value to same variable but for different corresponding functions in matlab?

假設我有一個要解決的功能,如下面的代碼所示。 如何管理每個參數n1n2n3n4beta值(請參見代碼)?

a= 0.1;
i = 1;
m = 0;    
k = 1;
beta = 1;

while m(i) <= 10    
    n1 = a(i);
    n2 = a(i)+1*n1;
    n3 = a(i)+2*n1+3*n2);
    n4 = a(i)+4*n1+5*n2+6*n3);
    a(i+1) = a(i) + 2*n1 + 4*n2 + 12*n3 + 13*n4;
    %something like
    %beta = [1 2 3 4]
    %m(i+1) = m(i) + beta[1]*k for n1
    %m(i+1) = m(i) + beta[2]*k for n2
    %m(i+1) = m(i) + beta[3]*k for n3
    %m(i+1) = m(i) + beta[4]*k for n4
    m(i+1) = m(i) + beta*k; % k is the same for all n1, n2, n3, n4. But I want to assign different beta to n1, n2, n3, n4, say beta = 1,2,3,4 for n1, n2, n3, n4, respectively. 
    i = i +1;
end

“ m(i)”用於為[n1 n2 n3 n4]中的每個n分配不同的時間步長。 我也不敢確定是否有可能在每次演變時將不同的值“ m”分配給“ n”。

非常感謝您的幫助!

這是您嘗試做的嗎?

a = 0.1;
an = [1 1+1 1+2+3*2 1+4+5*2+6*9].';
ii = 1;
m = zeros(4,1);    
n = m;
beta = [1 2 3 4].';
v = [2 4 12 13].';

while m(ii) <= 10 % <-- this should change to somthing that makes sense.
    n(:,ii) = a(ii)*an; % this vector replaces n1 by n(1), n2 by n(2) etc...
    a(ii+1) = a(ii) + sum(v.*n(:,ii));
    m(:,ii+1) = m(:,ii) + beta.*n(:,ii);
    ii = ii+1;
end

我不確定“不同的beta到n1,n2,n3,n4”是什么意思,因為對nbeta沒有操作,所以我猜想您想用相關的n切換k

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM