필터 지우기
필터 지우기

getting rid of a loop

조회 수: 2 (최근 30일)
joseph Frank
joseph Frank 2012년 7월 25일
Hi,
I have a cell array X which has around 1 million rows. each row has a 1x18 cell in it. I want to select columns 4,5,10,18 from each row. To do so I am running a loop v = regexp( X, ',', 'split'); ncol=[4 5 10 18];%numeric columns v2=nan(length(v),length(ncol));% numeric variables empty matrix
for j=1:length(v)
v0=[v{j,1}];
v2(j,1:length(ncol))=str2double(v0(1,ncol));
end
end
is it possible to avoid the loop and select columns 4,5,10,18 of each row of X?
  댓글 수: 1
Image Analyst
Image Analyst 2012년 7월 26일
Edit your question. Highlight the code part of the question. Click the "{} Code" box above to format it so that it looks like a regular program.

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

답변 (2개)

Nirmal
Nirmal 2012년 7월 25일
편집: Nirmal 2012년 7월 25일
b=[V(:,4) V(:,5) V(:,10) V(:,18)]
b will be what you want.
  댓글 수: 2
joseph Frank
joseph Frank 2012년 7월 25일
No,
It is giving an error that index exceeds Matrix dimenssions.
V has only one column and in each row of this column I have 1x18 cells
Nirmal
Nirmal 2012년 7월 25일
change that V with X. I misread.

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


joseph Frank
joseph Frank 2012년 7월 26일
편집: joseph Frank 2012년 7월 26일
Thanks Nirmal for your efforts but still it doesn't work. Just in case my question wasn't clear I will rephrase it here
X has the following format:is 00846UAB7,A.GB,A,07/01/2002,11:10:26,T,500000,101.84,2.21429,000,@,,,101.84,2.21429,101.84,2.21429,101.84 v = regexp( X, ',', 'split');
to obtain v=
<1x18 cell>
... for 1 million rows.
I want a matrix v2 that consists of columns 4 ,5,10 and 18 without running a loop/ I used in my initial codes v2=str2double(v0(1,ncol)); where v0 is a row obtained as :
for j=1:length(v)
v0=[v{j,1}];
v2(j,1:length(ncol))=str2double(v0(1,ncol));
end
end
from the loop descibed in the intial post;

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by