Re: [問題] 如何造出符合所有條件的解的矩陣
※ 引述《DennisTang (笑得很勉強)》之銘言:
: 大家好,
: 假設我現在有個方程式x1 + x2 + x3 = 1
: x1 >= x2 >= x3 >=0, 而有個參數叫scale = 0.1
: 我想造出符合這個限制的所有解,
: 例如[ x1, x2, x3] = [ 1, 0, 0; ...
: 0.9, 0.1, 0; ...
: 0.8, 0.2, 0; ...
: 0.8, 0.1, 0.1; ...
: 0.7, 0.3, 0; ...
: 0.7, 0.2, 0.1; ...
: 0.6, 0.4, 0; ...
: 0.6, 0.3, 0.1; ...
: 0.6, 0.2, 0.2; ...
: .
: .
: .
: scale=0.1是指我原來用for loop造的話,
: for x1 = 1 : 0.1 : 0
: for x2 = 0: 0.1: 1-x1
: x3 = 1- x1 -x2
: end
: end
: 我本來是用for loop硬算,但是現在要解的維度很大,
: 所以想請問有沒有內建的函數或是任何有幫助的函數?
用ndgrid硬爆
scale=0.1;
temp=0:scale:1;
[x1,x2,x3]=ndgrid(temp,temp,temp);
x=x1+x2+x3;
i1=x1>=x2;
i2=x2>=x3;
i3=x==1;
i=i1&i2&i3;
x1=x1(i);
x2=x2(i);
x3=x3(i);
三維的話用meshgrid也可以 不過維度更高的話就要用ndgrid
不過不確定你真的要解的問題記憶體夠不夠
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.146.175
推
11/18 21:05, , 1F
11/18 21:05, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章