For example, I want to get a result like this. b=[1 diff(3)]=[1 0]. Not b=[1] .

1 view (last 30 days)
differentiation of constant value is zero. But in matlab, diff(3)=[]; I want to get a vector which components are constant and zero. For example, I want to get a result like this. b=[1 diff(3)]=[1 0]. Not b=[1] How can I solve it?

Accepted Answer

David Sanchez
David Sanchez on 30 Jul 2013
Do something like the following function:
function out=my_diff(in)
out = diff(in);
if isempty(out)
out = 0;
end

More Answers (1)

Jan
Jan on 30 Jul 2013
Edited: Jan on 30 Jul 2013
diff() is not the "differentiation", but the "difference" of neighboring elements. As long as [3] does not have neighboring elements the result is empty, of course.
The "differentiation" is performed by the command gradient. But even with this [3] is not a well defined input: There is no slope between one point. Replying 0 is mathematically incorrect then.

Categories

Find more on Mathematics in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!