看板 MATLAB 關於我們 聯絡資訊
原文恕刪 ㄎㄎ 我稍微幫你改一下加快速度 MATLAB 迴圈下去暴力跑其實是會很慢的 要善用"矩陣"的方法 clear all;clc;tic; % 清畫面 清資料 計時 n=4; % 變數個數 m=10; % 可能變數數量 p=0:9; % 變數範圍 0 1 2 3 4 5 6 7 8 9 p=p(fullfact([m,m,m,m])); % 排列組合 製造出所有答案 為一個(10000*4)矩陣 f1=@(X) X(:,1)+X(:,2)+X(:,3)+X(:,4)-9; % function 1 f2=@(X) X(:,1)*2+X(:,2)*3+X(:,3)*4+X(:,4)*5-22; % function 2 N=[]; % 做一個空集合變數 idx = find(f1(p)==0 & f2(p)==0); N = p(idx,:) toc; % 計時終止 時間快了4倍左右 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.197.4
kuoyfu:厲害厲害 讚唷讚唷~ 11/24 21:22