作者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