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

2 vues (au cours des 30 derniers jours)
Jonghun
Jonghun le 30 Juil 2013
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?
  1 commentaire
Iain
Iain le 30 Juil 2013
What else can "3" be? - I mean can it be a vector or what?

Connectez-vous pour commenter.

Réponse acceptée

David Sanchez
David Sanchez le 30 Juil 2013
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 Mathematics dans Help Center 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