作者Raymond0710 (雷門)
看板MATLAB
標題Re: [討論] 當未知數多於方程式(已有範圍)
時間Thu Nov 24 20:33:44 2011
原文恕刪
ㄎㄎ 我稍微幫你改一下加快速度
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
1F:推 kuoyfu:厲害厲害 讚唷讚唷~ 11/24 21:22