l_0=1.5;
l_1=1.6;
Lambda_min=2*(1+1)*l_0;
Lambda_max=2*(1+1)*l_1;
n_0=linspace(2,2.11,10);
n_1=linspace(2.30,2.50,10);
for i=1:10
for j=1:10
for k=1:10
l(i) = Lambda_min * ( Lambda_max/Lambda_min)^(i/10)
sum=sum(l)
d_0(:,j)= l(i)/((n_0(i)/n_1(i)+1))
d_1(:,k)= (n_0(i)/n_1(i))*d_0(:,j)
end
end
end
首先;我想找到l(i)的值,它是一个向量,然后取该向量的总和。第二,对于d_0(:,j)我想创建一个矩阵,以便我可以稍后绘制它,每次从l(i),n_0,n_1获取不同的值。如果我取n_0和n_1的值并放入for循环,我将得到索引错误,因为它应该是逻辑或整数。
我的矩阵被覆盖,不知道如何避免它。注意,我想在d_0和d_1 n_0和n_1中从linspace获取值。例如,在第一次迭代中,n_0 = 2 n_1 = 2.30,然后第二次迭代获取linspace中的下一个值。
我试着看到n_0(i)的值,它给了我10次迭代。它给了我更多的覆盖。
答案 0 :(得分:0)
尝试:
l_0=1.5;
l_1=1.6;
Lambda_min = 4*l_0;
Lambda_max = 4*l_1;
n_0 = linspace(2,2.11,10) % don't add semicolon so you can check this is giving 10 values
n_1 = linspace(2.30,2.50,10) %
for i=1:10
l(i) = Lambda_min * ( Lambda_max/Lambda_min)^(i/10) % should give you 10 values
end
d_0= l./((n_0./n_1+1)); % This will only give you a vector, not a matrix.
d_1= (n_0./n_1).*d_0;
Lsum = sum(l); % should give you one value