Ham*_*med 1 matlab for-loop vector matrix multiplication
我想将两个向量相乘以产生一个矩阵.
我有一个向量1*m和另一个1*n,在我的情况下是V(1*71)和I(1*315).其他向量的长度与I相同.
我想将I的每个值乘以V的所有值,并在矩阵中得到答案,其中新矩阵的每一行或每列都是 I(t).*V
Ir和Temp是大小为1*315的向量,所有变量具有相同的长度,T为315.
您在代码中看到的其他参数是常量值.
这是代码:
function [I] = solar2diodedyn( Ir,time,Temp )
V = 0:0.01:0.7; %open circuit voltage of one cell in V.
for t=1:time;
T(t)= Temp(t)+273;
Vt(t)=(k*T(t))/q;
Iph(t) = Isc_cell*(Ir(t)/1000)*(1+(T_co*(Temp(t)-25)));
I0(t)=Is1*((T(t)/Tmeas)^(3/n1))*exp(Eg*((T(t)/Tmeas)-1)/(n1*Vt(t)));
I02(t)=Is2*((T(t)/Tmeas)^(3/n2))*exp(Eg*((T(t)/Tmeas)-1)/(n2*Vt(t)));
I(t) = zeros(size(t));
i=length(V);
for x=1:i
I(t) = Iph(t) - I0(t)*(exp((V(x)+I(t)*Rs)/(n1*Vt(t)))-1)-I02(t)*(exp((V(x)+I(t)*Rs)/(n2*Vt(t)))-1)-((V(x)+I(t)*Rs)/Rsh);
end
end
Run Code Online (Sandbox Code Playgroud)
提前致谢
如果有两个向量x(大小1逐个的n)和y(大小1逐m),并且希望的矩阵M尺寸的n-by- m使得M(i,j) = x(i) * y(j)那么你正在试图计算外积的x和y.
这可以通过matlab轻松完成
>> M = x.' * y;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |