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

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?

 Réponse acceptée

Do something like the following function:
function out=my_diff(in)
out = diff(in);
if isempty(out)
out = 0;
end

Plus de réponses (1)

Jan
Jan le 30 Juil 2013
Modifié(e) : Jan le 30 Juil 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.

Catégories

En savoir plus sur Programming dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by