Насколько я могу судить, то, что вы спрашиваете, уже является поведением по умолчанию в matlab.Это означает, что если f возвращает скаляр, x будет скаляром, а если он возвращает вектор, x будет вектором.
В вашем примере это верно, пока t также является скаляром - иначе результат будет зависеть от того, как оценивается t * [output of f].
Пример
function o1 = f(N)
o1 = zeros(1,N);
end
Здесь f возвращает скаляр, если N = 1, и вектор для N> 1.Вызов вашего кода дает
x=feval('f', 1); % Returns x = 0
x=feval('f', 4); % Returns x = [0 0 0 0]