24小时热门版块排行榜    

查看: 461  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ice_huya

金虫 (小有名气)

[求助] 一个看起来很容易的程序,却困扰我好久,求助大家(关于生成矩阵) 已有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
回复此楼
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

zxhitler

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
ice_huya: 金币+30, ★★★★★最佳答案, 不好意思啊 最近比较忙 回复晚了 我自己也找到原来程序的问题在哪了!已经修改好了,咱们的结果是相同的 您的理解没错 非常感谢:) 2016-10-21 19:09:17
引用回帖:
2楼: Originally posted by zxhitler at 2016-10-08 13:53:54
不是很明白楼主的意思,我根据我的理解,修改了一下你的程序,你可以看看是不是你需要的那个图

不好意思,不知道怎么换行clear;clc;close all;
a = [1 1 1 2 2 2 2 3 3 3 3 3 4 4 5 6 4 4 3 3 3 3 3 3 2 2 2 2 2 1 1 1]; % 根据楼主的手图的数据

H=[1;2;3;4;5;6];         
N=[6;9;11;4;1;1];

jj = 0;% 前索引
N_ss = 32;  %N中各元素出现总次数,也是ss的行数,新矩阵ss : 32*1
kk = N_ss; % 后索引
ss = zeros(N_ss, 1);
for ii = 1:length(H)
    if mod(N(ii,1),2) == 0    %n为偶
        len = 0.5*N(ii,1);
        ss(jj+1:jj+len, 1) = H(ii, 1);  %前面0.5*n次
        ss(kk-len+1:kk,1) = H(ii,1);  %后面0.5*n次
        jj = jj + 0.5*N(ii,1);
        kk = kk - 0.5*N(ii,1);
    else    %n为奇
        if N(ii,1)==1
            ss(jj+1,1) = H(ii,1);    %前面int(0.5*n)次(去零取整)
            jj = jj + 1;
%             kk = kk - 1;
        else
            len = fix(0.5*N(ii,1));
            ss(jj+1:jj+len,1) = H(ii,1);    %前面int(0.5*n)次(去零取整)
            ss(kk-(N(ii)-len)+1:kk,1) = H(ii,1); %后面n-int(0.5*n)次(后面通常应比n为偶数时多1次)
            jj = jj + len;
            kk = kk - (N(ii) - len);
        end
    end
end

figure(1);
subplot(2,1,1);
plot(ss, '*-');
ylim([0 6]);
grid on;
subplot(2,1,2);
plot(a, '*-');
ylim([0 6]);
grid on;
3楼2016-10-08 13:56:48
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

zxhitler

新虫 (初入文坛)

【答案】应助回帖

不是很明白楼主的意思,我根据我的理解,修改了一下你的程序,你可以看看是不是你需要的那个图
2楼2016-10-08 13:53:54
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料与化工专硕调剂 +4 heming3743 2026-03-16 4/200 2026-03-17 13:42 by houyaoxu
[考研] 085601专硕,总分342求调剂,地区不限 +3 share_joy 2026-03-16 3/150 2026-03-17 13:41 by houyaoxu
[考研] 293求调剂 +5 世界首富 2026-03-11 5/250 2026-03-17 10:16 by Sammy2
[考研] 267一志愿南京工业大学0817化工求调剂 +6 SUICHILD 2026-03-12 6/300 2026-03-17 09:24 by 雾散后相遇lc
[考研] 278求调剂 +3 Yy7400 2026-03-13 3/150 2026-03-17 08:24 by laoshidan
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
[考研] 328求调剂,英语六级551,有科研经历 +3 生物工程调剂 2026-03-16 4/200 2026-03-16 20:13 by Wangjingyue
[文学芳草园] 伙伴们,祝我生日快乐吧 +17 myrtle 2026-03-10 26/1300 2026-03-16 18:32 by 青橙Ln
[考研] 0854控制工程 359求调剂 可跨专业 +3 626776879 2026-03-14 9/450 2026-03-16 17:42 by 626776879
[考研] 0703一志愿211 285分求调剂 +5 ly3471z 2026-03-13 5/250 2026-03-16 16:16 by 哦哦123
[考研] 一志愿华中师范071000,325求调剂 +6 RuitingC 2026-03-12 6/300 2026-03-16 14:50 by 可淡不可忘
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
[考研] 289求调剂 +4 这么名字咋样 2026-03-14 6/300 2026-03-14 18:58 by userper
[考研] 331求调剂(0703有机化学 +5 ZY-05 2026-03-13 6/300 2026-03-14 10:51 by Jy?
[考研] 0856材料与化工301求调剂 +5 奕束光 2026-03-13 5/250 2026-03-13 22:00 by 星空星月
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] 四川大学085601材料工程专硕 初试294求调剂 +4 祝我们好在冬天 2026-03-11 4/200 2026-03-13 21:39 by peike
[考研] 085600材料与化工 309分请求调剂 +7 dtdxzxx 2026-03-12 8/400 2026-03-13 14:43 by jxchenghu
[考研] 321求调剂(食品/专硕) +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
信息提示
请填处理意见