53 views (last 30 days)

Show older comments

Hi. I am releasing a chemical species CHX (N units) in a chamber. The size of the chamber is 100 X 100 X 100 cms^3. I want to plot the contour/surface plot of concentration of this chemical species in the chamber at different spatial locations.

I want to look at the concentration profiles overlapped or plotted on one plane, say X-Y plane (100 X 100 cm^2).

I am using a digital chemical analyzer which gives the X and Y vectors, X and Y which give the spatial location. Each and every (X,Y) corresponds to a spatial location at which the chemical species is present.

For example, if a given (X,Y) shows up "m" times it, means that there are "m" units of that species at that location. In my surface plot, at that particualr (X,Y), I want the value to be m/N (with some colormap). The same is with other (X,Y) locations.

Can someone help me with this?

Star Strider
on 10 Nov 2019

Try this example:

xy = randi(9, 100, 2); % Matrix Of ‘x’ and ‘y’ Positions

[Uxy,ia,ic] = unique(xy, 'rows'); % Unique Rows

tally = accumarray(ic, 1); % Tally Numbers Of Unique Row Repeats

Freq = [Uxy, tally]; % Concatenated Matrix

xv = min(xy(:,1)):max(xy(:,1)); % ‘x’ Vector For Interpolation

yv = min(xy(:,2)):max(xy(:,2)); % ‘y’ Vector For Interpolation

[X,Y] = ndgrid(xv,yv); % Create Interpolation Grid

Z = griddata(Freq(:,1), Freq(:,2), Freq(:,3), X, Y); % Interpolated Grid Of ‘tally’ Values

figure

contourf(X, Y, Z) % Contour Plot

colorbar

Experiment to get the result you want.

Star Strider
on 14 Nov 2019

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

Start Hunting!