Azzera filtri
Azzera filtri

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

8 visualizzazioni (ultimi 30 giorni)
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

Risposte (2)

Andrei Bobrov
Andrei Bobrov il 31 Mar 2019
Modificato: Andrei Bobrov il 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 il 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 Commenti
whyamiincollege
whyamiincollege il 31 Mar 2019
Don't worry about it though. I just did it a completely different way and it worked
Image Analyst
Image Analyst il 1 Apr 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.

Accedi per commentare.

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by