若是每一次循环得到的impixel都是一列的话,只需每次计算出后写a(:,i)=impixel,
若是一行:a(i,:)=impixel,
若impixel得大小不定,你就在for外预定义一个元组a=cell(N,1);然后每次写a{i}=impixel,最后所有的impixel都存在a里,当然你也可以定义一个结构体,不过我觉得元组更容易操作一些
可以参考下面的例子:
%%模型3
H=5;%屏幕上边缘离地面的高度
h=1.8;%屏幕的高度
D=19;%最后一排离屏幕水平距离
d=4.5;%第一排离屏幕水平距离
c=1.1;%观众的平均坐高
l=0.8;%两排座位间的距离
pi=3.1415926;
fd=pi/180;%幅度换算
for q=0:0.01:20
fprintf('when q=%f',q);
n=floor(14.5/(l*cos(q*fd)))+1;
C=H-(tan(q*fd)*14.5+1.1);%每排观众距屏幕上沿的距离
end%%由计算可知排数19<=n<=20 q<=15.05
%%根据利益最大化,n=20
q=0:0.01:15.01;
for j=1:length(q)
%fprintf('线倾角q=%f\n',q);
for i=1:1:20
x=4.5+14.5*(i-1)/n;
A(i,j)=(atan(1.8*x/(x^2+(5-x*tan(q(j)*fd)-4.5*tan(q(j)*fd)+1.1)*(3.2-x*tan(q(j)*fd)-4.5*tan(q(j)*fd)+1.1))))/fd;
B(i,j)=(atan((5-x*tan(q(j)*fd)-4.5*tan(q(j)*fd)+1.1)/x))/fd;
end
RA=A/20;
RB=B/20;
end
最后得到的A和B都是 20x1502的矩阵
第一行表示 i=1
第二行表示 i=2
...
第二十行表示 i=20
第一列表示 p=0
第二列表示 p=0.01
第三列表示 p=0.02
...
第一千五百零二列 p=15.01