哎matlab中如何把一组数据存入另外一个数组或者矩阵中

2024-12-02 09:32:19
推荐回答(2个)
回答1:

若是每一次循环得到的impixel都是一列的话,只需每次计算出后写a(:,i)=impixel,
若是一行:a(i,:)=impixel,
若impixel得大小不定,你就在for外预定义一个元组a=cell(N,1);然后每次写a{i}=impixel,最后所有的impixel都存在a里,当然你也可以定义一个结构体,不过我觉得元组更容易操作一些

回答2:

可以参考下面的例子:

%%模型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