| 查看: 443 | 回复: 2 | ||
[求助]
一个看起来很容易的程序,却困扰我好久,求助大家(关于生成矩阵) 已有1人参与
|
2楼2016-10-08 13:53:54
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
ice_huya: 金币+30, ★★★★★最佳答案, 不好意思啊 最近比较忙 回复晚了 我自己也找到原来程序的问题在哪了!已经修改好了,咱们的结果是相同的 您的理解没错 非常感谢:) 2016-10-21 19:09:17
ice_huya: 金币+30, ★★★★★最佳答案, 不好意思啊 最近比较忙 回复晚了 我自己也找到原来程序的问题在哪了!已经修改好了,咱们的结果是相同的 您的理解没错 非常感谢:) 2016-10-21 19:09:17
|
不好意思,不知道怎么换行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












?
回复此楼