Linspace с анонимной функцией, пропускающей каждое второе значение - PullRequest
0 голосов
/ 08 мая 2018

У меня действительно простая проблема, но я не могу ее решить.

Я хочу создать последовательность linspaced между двумя значениями анонимной функции. Если я делаю это со значениями, это не проблема и выглядит так

n = 5;
left = 1;
right = 3;

y = zeros(n, 1);
x = linspace(left, right, n)';

q = zeros(2*n, 1);
q(1:2:end) = x
q(2:2:end) = y

Но то же самое невозможно с анонимными функциями в качестве границ. Моя попытка выглядит так, но я был бы очень признателен за лучшее решение

n = 5;
left = @(t) 0.5 * t;
right = @(t) 2 * t^2 + 5;
diff = @(t) right(t) - left(t);

q = @(t) [];

for i = 1:n
    q = @(t) [q(t) i*diff(t)/n 0*t];
end

q(0.5)

Надеюсь, вы мне поможете, заранее спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Благодаря @Adiel я сделал следующий ответ

function [Q] = reference_configuration(left, right, n, t)

l = left(t);
r = right(t);
diff = r - l;

x = linspace(0, diff, n);
y = zeros(1, n);

q = zeros(1, 2*n);
q(1:2:end) = x;
q(2:2:end) = y;

end

Может быть, это кому-нибудь поможет. Спасибо!

...