Найти целочисленное решение по формуле - PullRequest
0 голосов
/ 29 сентября 2018

Учитывая два вектора кандидатов:

x = [1 3 5];
y = [1 2 3 4];

Я хочу найти, какие кандидаты удовлетворяют уравнению или формуле.Это то, что я хочу сделать:

f = x + y - 6;
solve f;

А потом, он выплевывает решения:

5  1
3  3

Если это имеет значение, я на самом деле использую Octave, а не MatLab, потому что я ненет машины с Windows.Я знаю, что могу сделать это с помощью цикла for:

for i=x  
    for j=y  
        if i+j-6==0 
            disp([i j]); 
    end 
end

Это тривиальный пример.Я ищу решение, которое будет работать с более крупными примерами.

1 Ответ

0 голосов
/ 01 октября 2018

Решение таких уравнений в расчете на "грубую силу", как правило, плохая идея, но вот, пожалуйста,

x = [1 3 5];
y = [1 2 3 4];

## build grid (also works for n vars)
[xx, yy] = ndgrid (x, y);

## anonymous function
f = @(x,y) abs(x + y - 6) < 16*eps 

## true?
t = f (xx, yy);

## build result
[xx(t) yy(t)]
...