[英]How to assign value to same variable but for different corresponding functions in matlab?
假設我有一個要解決的功能,如下面的代碼所示。 如何管理每個參數n1
, n2
, n3
和n4
的beta
值(請參見代碼)?
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”是什么意思,因為對n
和beta
沒有操作,所以我猜想您想用相關的n
切換k
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.