Re: [討論] 列印問題 不用迴圈

看板MATLAB作者 (天)時間8年前 (2016/03/27 19:40), 8年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《su3cl3 (:))》之銘言: : 大家好, : 若我今天要做到以下這件事,但是不使用迴圈,有沒有任何作法呢? : B=1000:1000:10000; : C=1:1000:9001; : P是一向量(1x1200) : for i=1:10 : d=length(find(P<B(i)))-length(find(P<C(i))); %d為1x1 : fprintf('%5d-%5d:%5d\n',C(i),B(i),d); % 列印 : end : 謝謝! B = 1000:1000:10000; C = 1:1000:9001; P = 10000 * rand(1200, 1); tic for i=1:10 d=length(find(P<B(i)))-length(find(P<C(i))); fprintf('%5d-%5d:%5d\n',C(i),B(i),d); end toc % Elapsed time is 0.008919 seconds. tic d = arrayfun(@(b, c) sum(P > c & P < b), B, C); disp(sprintf('%5d-%5d:%5d\n', [C; B; d])); toc % Elapsed time is 0.011709 seconds. tic d = histcounts(P, 0:1000:10000); disp(sprintf('%5d-%5d:%5d\n', [C; B; d])); toc % Elapsed time is 0.011625 seconds. PS: histcounts是2014b後才有的函數,用之前的版本請用histc第二個output -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.152.118 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1459078859.A.CA3.html ※ 編輯: celestialgod (180.218.152.118), 03/27/2016 19:41:48

03/27 19:50, , 1F
感謝大大 太厲害了!
03/27 19:50, 1F

03/27 20:13, , 2F
大推!
03/27 20:13, 2F
文章代碼(AID): #1MzyRBoZ (MATLAB)
文章代碼(AID): #1MzyRBoZ (MATLAB)