How to seperate an array into two?

조회 수: 1 (최근 30일)
Jose Grimaldo
Jose Grimaldo 2020년 4월 2일
편집: dpb 2020년 4월 2일
Im trying to seperate an array into two even variables using for loops. How can i do that?
I know that i can just do V1=V(1:2:end); V2=V(2:2:end); but I want to do it using for loops.
V=(8x1)
[r,c]=size(V)
V1=V(1);
V2=V(2)
for i=1:r-1
for j=1:(r/2)
V1(j)=V(i+2)
V2(j)=V(i+1)
end
  댓글 수: 2
dpb
dpb 2020년 4월 2일
No loops needed...
V1=V(1:2:end);
V2=V(2:2:end);
I'd also strongly suspect there's really no reason to create two variables with sequential names; just reference the desired subset directly from the original.
Jose Grimaldo
Jose Grimaldo 2020년 4월 2일
I know i can do that but I want to do it using for loops

댓글을 달려면 로그인하십시오.

채택된 답변

dpb
dpb 2020년 4월 2일
편집: dpb 2020년 4월 2일
Not a good idea still unless is homework...there are any number of ways to do so; about as simple as any would be
for i=2:2:numel(V)
j=i/2;
v1(j)=V(i-1);
v2(j)=V(i);
end
preallocate, of course.
As "exercise for Student", with minor alterations the above will work silently if the length of the input vector is odd as well. HINT: start w/
for i=1:2:numel(V)
j=???
...
instead and work form there...
Both, of course, presume the input vector is alternating odd-even rather than looking at what the values in the vector are and selecting by it.

추가 답변 (1개)

Mohammad Sami
Mohammad Sami 2020년 4월 2일
You can directly index into your 1-D vector.
V = rand(8,1);
n = length(V);
Vodd = V(1:2:n);
Veven = V(2:2:n);

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by