Analyzing Atomic Force Microscope data using MATLAB

20 Ansichten (letzte 30 Tage)
Alexander Link
Alexander Link am 7 Mär. 2019
Beantwortet: Alexander Link am 10 Mär. 2019
I am pretty new to MATLAB and only know some basic functions of the program. I have a 512x512 excel sheet that is height data from a section of surface the size of 20micometerX20micrometer. I am trying to input this data in to matlab and create a 2D and 3D plot of the data. I can input the data from excel and use the data to create a 'z' variable. What im struggling with is defining the x and y variable for the 3d plot and the x variable for the 2D plot. Please let me know if you believe you can help me!

Akzeptierte Antwort

KSSV
KSSV am 7 Mär. 2019
[num,txt,raw] = xlsread(myfile) ;
[ny,nx] = size(num) ;
L = 20 ; % micrometer
B = 20 ; % micrometer
x = linspace(0,L,nx) ;
y = linspace(0,B,ny) ;
[X,Y] = meshgrid(x,y) ;
figure(1)
pcolor(X,Y,num) ;
figure(2)
surf(X,Y,num) ;
  3 Kommentare
Alexander Link
Alexander Link am 7 Mär. 2019
and txt and raw?
KSSV
KSSV am 7 Mär. 2019
I am reading data from excel file using xlsread. num gives numbers from excel data, txt gives you text data if any in excel file. raw gives you both text data nd number data as it exists in excel file. Read about xlsread.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Alexander Link
Alexander Link am 10 Mär. 2019
Hey, I was wondering if you could help me on what im trying to do next with these graphs? I am trying to create an interactive interface that has a drop down menu with two options "2D Plot" and "3D Plot" and when one of these options is selected it launches the respected graph. I am finding the drop down menu to be kinda complicated for me so if having two push buttons is easier then that will also work. Here is what I have with my code so far but I keep getting a message that says "Error while evaluation UIControl Callback"
global Figure2D Figure3D
[num,txt,raw] = xlsread('Surface_Data.xlsx', 'PDA-PTFE_PFQNM_SA003ASCII3', 'A2:SR513');
[ny,nx] = size(num);
L = 20; %micrometer
B = 20; %micrometer
x = linspace(0,L,nx);
y = linspace(0,B,ny);
[X,Y] = meshgrid(x,y);
Figure2D = figure;
pcolor(X,Y,num);
Figure3D = figure;
surf(X,Y,num);
plotStyle2D = uicontrol(Figure2D,'Style','popupmenu');
plotStyle2D = uicontrol(Figure3D,'Style','popupmenu');
menuItems = [" Select Plot " "2D Plot" "3D Plot"];
dropDownPosition = [20 80 100 40];
plotStyle2D.String = menuItems;
plotStyle2D.Position = dropDownPosition;
plotStyle3D.String = menuItems;
plotStyle3D.Position = dropDownPosition;
plotStyle2D.Callback = @PlotType;
H
function PlotType(src,event)
val = src.Value;
str = src.String;
if(str{val} == '2D Plot')
figure(Figure2D);
elseif(str{val} == '3D Plot')
figure(Figure3D);
end
end

Community Treasure Hunt

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

Start Hunting!

Translated by