How to separate a vector into positive and negative vectors using a for loop?

6 vues (au cours des 30 derniers jours)
whyamiincollege
whyamiincollege le 31 Mar 2019
Commenté : Image Analyst le 1 Avr 2019
clc;
x = [-3.6 10 3 -1 11.4 0 7 -9.5 2 15 -1 3];
for i = 1:length(x)
if x(i) >= 0
x(i) = P
elseif x(i) < 0
x(i) = N
end
end
This is what I have. It is obviously wrong but you should get the gist of it. It needs to be separated into two vectors: N and P

Réponses (2)

Andrei Bobrov
Andrei Bobrov le 31 Mar 2019
Modifié(e) : Andrei Bobrov le 31 Mar 2019
x = [-3.6 10 3 -1 11.4 0 7 -9.5 2 15 -1 3];
y = strings(numel(x),1);
for ii = 1:length(x)
if x(ii) >= 0
y(ii) = "P";
elseif x(ii) < 0
y(ii) = "N";
end
end
or
x = [-3.6 10 3 -1 11.4 0 7 -9.5 2 15 -1 3];
cn = 0;
cp = 0;
nn = numel(x);
p = zeros(nn,1);
n = zeros(nn,1);
for ii = 1:nn
if x(ii) >= 0
cp = cp + 1;
p(cp) = x(ii);
else
cn = cn + 1;
n(cn) = x(ii);
end
end
p = p(1:cp);
n = n(1:cn);
or
p = x(x >= 0);
n = x(x < 0);

Image Analyst
Image Analyst le 31 Mar 2019
You're not supposed to assign x - that's a given constant. You're supposed to build N and P. So it will be more like
clc;
x = [-3.6 10 3 -1 11.4 0 7 -9.5 2 15 -1 3];
nIndex = 1;
pIndex = 1;
for i = 1:length(x)
if x(i) >= 0
P(pIndex) = x(i);
pIndex = .......
elseif x(i) < 0
N(nIndex) = x(i);
nIndex = .............
end
end
See if you can complete your homework from the above.
  8 commentaires
whyamiincollege
whyamiincollege le 31 Mar 2019
Don't worry about it though. I just did it a completely different way and it worked
Image Analyst
Image Analyst le 1 Avr 2019
I tried it both before I posted, and after your last post, and it works perfectly fine.
The final line to get it to work is
pIndex = pIndex + 1;
Glad you found an alternate way that is 100% your own though - that's probably better as far as turning in graded homework goes.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by