getting rid of a loop

1 visualizzazione (ultimi 30 giorni)
joseph Frank
joseph Frank il 25 Lug 2012
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 Commento
Image Analyst
Image Analyst il 26 Lug 2012
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.

Accedi per commentare.

Risposte (2)

Nirmal
Nirmal il 25 Lug 2012
Modificato: Nirmal il 25 Lug 2012
b=[V(:,4) V(:,5) V(:,10) V(:,18)]
b will be what you want.
  2 Commenti
joseph Frank
joseph Frank il 25 Lug 2012
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 il 25 Lug 2012
change that V with X. I misread.

Accedi per commentare.


joseph Frank
joseph Frank il 26 Lug 2012
Modificato: joseph Frank il 26 Lug 2012
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;

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by