Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Complicated Matrix Data filtering

Asked by Hello kity

Hello kity (view profile)

on 25 Jan 2013

Hi,

I need to 'filter' out some data out of a large spreadsheet. The spreadsheet consists of three colomns, X Y Z , and Device name. Those values are matched with a reference, the reference is found at the end of every 'group' of data.

What I want is (for example): if device B is found in the group (this is not always the case), then do reference minus data (Xref-X , Yref-Y Zref-Z).

I select the data with:

[filename, pathname] = uigetfile({'*.xls'},'File Selector');
[num, txt]=xlsread(filename);
		X	Y	Z	Device
		-11.2	151.9	0.3	A
		-11.3	150.2	-0.3	A
		-11.4	151.8	1.5	B
		-11	151.7	0	B
		-11.4	149.9	0.1	C
		-11.8	151.7	1.7	D
reference	-11.6	150.6	-0.2	
		X	Y	Z	Device
		-9.5	154.2	-0.3	A
		-9.1	155.5	-1.1	A
		-9.4	155.6	0.5	B
		-9.4	156.5	1.2	C
		-9.2	156.4	-0.2	C
reference	-9.1	155.1	0.1	

0 Comments

Hello kity

Hello kity (view profile)

Products

No products are associated with this question.

2 Answers

Answer by per isakson

per isakson (view profile)

on 26 Jan 2013
Edited by per isakson

per isakson (view profile)

on 26 Jan 2013

Try

    [~,~,raw] = xlsread( fullfile( pathname, filename ) );

0 Comments

per isakson

per isakson (view profile)

Answer by Image Analyst

Image Analyst (view profile)

on 26 Jan 2013

Beware that num and txt are not aligned! I'd recommend you use raw. Then use ismember() on the third column to find the desired letter, and do the math.

1 Comment

Hello kity

Hello kity (view profile)

on 29 Jan 2013

I noticed that. I am using raw now. I can find the desired letter with strcmp. But I am having troubles how I can sort the data in groups. So DEvice A with all its (individual) values and references.

Image Analyst

Image Analyst (view profile)

Contact us