Multiplying every secound element in a vector with -1
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jonathan Larsson
le 1 Oct 2019
Réponse apportée : James Tursa
le 3 Oct 2019
Hello I am looking for how to multiply every secound element in vector 1xn with -1, but I want to write this as a function. I can do this manually like this for example with an 1x3 vector;
function vny = byt_tecken(v)
vny=[v(1,1),-v(1,2),v(1,3)]
end
But how do I do this for any given 1xn vector? Thanks!
0 commentaires
Réponse acceptée
John D'Errico
le 1 Oct 2019
Modifié(e) : John D'Errico
le 1 Oct 2019
You need to start learning MATLAB. That is, actually learn to use vectors, matrices, not just work with single numbers, and loops. Until you do, you will continue to have these problems.
Here is one way to do what you asked for. There are surely a zillion others.
v = 1:10;
vny = v.*(mod(1:numel(v),2)*2 - 1)
vny =
1 -2 3 -4 5 -6 7 -8 9 -10
The point is to start thinking in terms of a vector and vector operations, tools that operate on every element of a vector in one call.
0 commentaires
Plus de réponses (2)
Daniel M
le 3 Oct 2019
Here is another way:
function vny = byt_tecken(v)
vny = v.*-(-1).^(1:numel(v));
end
0 commentaires
James Tursa
le 3 Oct 2019
Or yet another of the zillion ways
vny = v;
vny(2:2:end) = -vny(2:2:end);
0 commentaires
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!