|
|
[求助]
一个看起来很容易的程序,却困扰我好久,求助大家(关于生成矩阵) 已有1人参与
一个看起来很容易编的程序,却困扰我好久,希望大家帮忙挑错,先谢了!
问题描述如下:
有两个矩阵H, N:
H=[1;2;3;4;5;6]; %表示矩阵中各元素的值
N=[6;9;11;4;1;1]; %表示各元素出现的次数, 总次数为6+9+11+4+1+1=32
想生成如图中的新矩阵ss, 即:
当元素对应的出现总次数n为偶数时,前后各出现0.5*n次;
当元素对应的出现总次数n为奇数时,前:int(0.5*n) 后:n-int(0.5*n)
比如,H=1时, N=6, 则ss(1:3)=1, ss(30:32)=1;
H=2时, N=9, 则ss(4:8)=2, ss(25:29)=2;
.....
我的程序编写如下:
H=[1;2;3;4;5;6];
N=[6;9;11;4;1;1];
w=1;
a=0;
N_ss=32; %N中各元素出现总次数,也是ss的行数,新矩阵ss : 32*1
while w<=length(H)
if mod(N(w,1),2)==0 %n为偶
ss(a+1:a+0.5*N(w,1),1)=H(w,1); %前面0.5*n次
ss(N_ss-a-0.5*N(w,1)+1:N_ss-a,1)=H(w,1); %后面0.5*n次
else %n为奇
ss(a+1:a+fix(0.5*N(w,1)),1)=H(w,1); %前面int(0.5*n)次(去零取整)
ss(N_ss-a-fix(0.5*N(w,1)):N_ss-a,1)=H(w,1); %后面n-int(0.5*n)次(后面通常应比n为偶数时多1次)
end
a=a+fix(0.5*N(w,1));
w=w+1;
end
ss
figure(1);
plot(ss(:,1));
可是如按上面程序运算,生成的新矩阵ss总是前后完全对称,无论n为奇或偶,到底是哪里出了问题呢。。。 ?
期待大家的指教!!不胜感激!!!!
   
![一个看起来很容易的程序,却困扰我好久,求助大家(关于生成矩阵)]()
台阶式矩阵图.JPG |
» 猜你喜欢
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有4人回复
售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急
已经有3人回复
|