wio workshop 01.28...matlab organizing data in your workspace using for loops to deal with large...

32
WiO Workshop 01.28.2016 Presenter: Kelsey Miller

Upload: others

Post on 28-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop 01.28.2016

Presenter:KelseyMiller

Page 2: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

MATrixLABoratory

§ Mul/-paradigm,numericalcompu/ngenvironment

§  4thgenprogramminglanguage§  Allowsmatrixmanipula/on,func/onanddataplo@ng,algorithmimplementa/on,userinterfacecrea/on,andinterfacingwithotherlanguagesincluding3rdgenlanguages:C,C++,Java,FortranandPython

MATLAB

WiOWorkshop01.28.2016

Page 3: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

Inlayman’sterms:§  Powerful,user-friendlytoolfordataanalysisthatplayswellwithotherlanguages

MATLAB

WiOWorkshop01.28.2016

Page 4: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

§ LoadingdataintoMATLAB

§ Organizingdatainyourworkspace

§ Usingforloopstodealwithlargedatasets

§ Expor/ngyourdata

WiOWorkshop01.28.2016

Page 5: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ load§ importdata§ xlsread§ imread§ fitsread

Page 6: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:Loadsvariablesfromafileintotheworkspace(outputindouble)§ Syntax:loadfilenameA=load(‘filename’)A=load(‘filename’,variables)A=load(‘filename’,’-format’)A=load(‘filename’,’-format’,variables)§ Example:exampleload.m

Page 7: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:Loadsvariablesfromafileintotheworkspace.Canbeusedtoloadimagefiles(outputinuint8)andcanreadheaderinforma/oninASCIIfile

§ Syntax:(pastefromclipboard)A=importdata(‘-pastespecial’)(importfromfolder)A=importdata(‘filename’)A=importdata(‘filename’,’delimiterIn’)A=importdata(‘filename’,’delimiterIn’,’headerlinesIn’)§ Example:exampleimportdata.m

Page 8: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:ReadsMicroso]Excelspreadsheetfile(outputindouble).

§ Syntax:A=xlsread(‘filename’)A=xlsread(‘filename’,sheet)A=xlsread(‘filename’,range)A=xlsread(‘filename’,sheet,range)[data,txt,raw]=xlsread(‘filename’,sheet,range)§ Example:examplexlsread.m

Page 9: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:Readanimagefromagraphicsfile(Formatssupported:BMP,CUR,GIF,HDF4,ICO,JPEG,JPEG2000,PBM,PCX,PGM,PNG,PPM,RAS,TIFF,XWD.)(Outputtypedependsonfilebitdepth.)§ Syntax:A=imread(‘filename’)A=imread(‘filename’,‘format’)[A,map]=imread(‘filename’)(Forinforma/onaboutgraphicsfile)info=imfinfo(‘filename’)§ Example:exampleimread.m

Page 10: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:ReadsdatafromaFITSfile(FlexibleImageTransportSystem)*§ Syntax:data=fitsread(‘filename’)info=fitsinfo(‘filename’)§ Example:examplefitsread.m*hdp://www.mathworks.com/help/matlab/import_export/impor/ng-flexible-image-transport-system-fits-files.html

Page 11: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Naviga/ngthecommandwindow

§ Calling/par//oningselecteddata

§ Cellarrays§ Datacubes

Page 12: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Printworkingdirectorypwd

§ Changedirectorycddirectorynamecd..

§ Createnewdirectorymkdirdirectoryname

§ Removedirectoryrmdirdirectorynames

Page 13: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Copyfilescopyfilefilename-to-be-copiedfoldername-to-copy-to

§ Movefilesmovefilefilename-to-be-movedfoldername-to-move-to

§ ListfileslsORdirdirectoryname

§ Searchspecificfiletypels*.filetype

§ Deletefilesdeletefilename

Page 14: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

Calling/Partitioning Selected Data

WiOWorkshop01.28.2016

§ CallingspecificcolumnfrommatrixAx=A(:,columnnumber)

§ CallingspecificrowfrommatrixA

x=A(rownumber,:)§ CallspecificvaluefrommatrixA

x=A(rownumber,columnnumber)

Page 15: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ AssigningdatatonewmatrixB§ CreatematrixBB=zeros(numberofrows,numberofcolumns)

§ FillmatrixBwithdatafrommatrixAB(:,columnnumber)=A(:,columnnumber)

§ Example:example_Selec/ngData.m

Calling/Partitioning Selected Data

Page 16: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

Cell Arrays

WiOWorkshop01.28.2016

§ Createacellarraytoholdmul/plematrices,images,etc.allofvarioussizes

A=cell(numberofrows,numberofcolumns)Cancreatemul/-dimensionalarrays:A=cell(m,n,p,o,q……)

§ Fillcellarray

Assigndatatofirstcellinsimple2DarrayA{1,1}=data

§ Example:

example_CellArray.m

Page 17: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

Data Cubes

WiOWorkshop01.28.2016

§ Createa‘cube’matrixtocontainmul/pledatasetsofthesamesize.NOTE:Notlimitedto3dimensions

Createempty3DdatacubeA=zeros(y,x,z)

§ Filldatacube

Assigndatatofirstposi/onindatacubeA(:,:,1)=data

x

y

z

012345678

Page 18: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

Data Cubes

WiOWorkshop01.28.2016

§ Usefulforgroupsta/s/csandsingleimagestatsonlargenumbersofimageswhenusedinaforloop(coveredinthefollowingchapter)

§ ExampleProblem:Findingthemeanvalueandstandarddevia/onofasinglepixelacrossmul/pleimages

M=mean(DataCube(rownum,columnnum,:))S=std(DataCube(rownum,columnnum,:))§ Example:

example_DataCube.m

Page 19: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Usingforloopstoloadmul/plefiles

§ Usingforloopsindataanalysis

Page 20: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Usefultouseforloopswhenloadinglargenumberoffilesintoyourworkspace

§ Thinkaheadwhencomingupwithyourdatanamingscheme:§ Goodexample:data_1.fitsdata_2.fits…

§ Allowsforeasyimplementa/onofaforloopinbothloadingandorganizingyourdatafilesinyourworkspace

Page 21: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Samplesyntax:LoadingdataintoaDataCube

N=numberoffilestobeloadedDataCube=zeros(numrows,numcols,N)fork=1:N

filename=horzcat('file_',num2str(k),'.txt‘)DataCube(:,:,k)=load(filename)

end

Page 22: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Samplesyntax:LoadingdataintoaCellArray

N=numberoffilestobeloadedCellArray=cell(1,N)fork=1:N

filename=horzcat('file_',num2str(k),'.txt‘)CellArray{k}=load(filename)

end§ Example:

example_LoadingMul/pleFiles.m

Page 23: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Usingforloopstoiteratethroughdatacubes

§ ExampleProblem:Findingthemeanofeveryimagestoredinadatacube

N=numberoffilesindatacubeMvector=zeros(1,N)fork=1:N

Mvector(k)=mean2(DataCube(:,:,k))end§ Example:

example_DataCube.m

Page 24: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ save§ saveas§ xlswrite§ fitswrite§ Communica/ngwithZemax

Page 25: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:Savesworkspacevariablesto.matfileorASCII

§ Syntax:savefilenamesavefilenamevariablessave(‘filename’,‘variables’,’-format’)save(‘filename’,’variables’,‘-append’)§ Example:examplesave.m

Page 26: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:Savesfiguretospecificfileformat.Canbesavedas.m,FIG,JPEG,PNG,PDF,TIF,BMP,etc.(Savesfiguretoa.figfileifthefileextensionisunspecified.)

§ Syntax:(currentfigure)saveas(gcf,filename)saveas(fig,filename)saveas(fig,filename,formaWype)§ Example:examplesaveas.m

Page 27: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:WritesdatatoMicroso]Excelspreadsheetfile

§ Syntax:xlswrite(‘filename’,variable)xlswrite(‘filename’,variable,sheetnumber,range)xlswrite(‘filename’,variable,sheetnumber)xlswrite(‘filename’,variable,range)§ Example:examplexlswrite.m

Page 28: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:WritesanimagetoaFITSfile§ Syntax:fitswrite(imagedata,‘filename’)§ Example:examplefitswrite.m

Page 29: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/on:UsesZemax’sbuiltinDDE(DynamicDataExchange)servertocommunicatewithMATLABasaclientapplica/on.

§ CantalkbothwaysbetweenMATLABandZemax§ PushlensdatafromMATLABintotheZemaxLDE(LensDataEditor)

§ Pulldata/plotsfromZemaxintotheMATLABworkspace

§ Example:ZemaxMatlabCom.m

Page 30: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Func/onality:§ Atmosphere,SunandAstronomy§ Radiometry,Photometry,SpectralFiltering,SignalChainandProcessing

§ TransferFunc/ons:OTF,MTF,Spa/alFiltering,etc.

§ ImageProcessingandExploita/on§ InputandOutput§ Op/calModelling,AnalysisandTes/ng

§ Surveillance§ InternalZemaxCommands§ Plo@ng/Miscellaneous

Page 31: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

§ Reference:hdp://www.zemax.com/support/resource-center/knowledgebase/how-to-talk-to-zemax-from-matlabExamplesURL:wp.op/cs.arizona.edu/womeninop/cs/

Page 32: WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large data sets Expor/ng your data WiO Workshop 01.28.2016 WiO Workshop 01.28.2016 load importdata

WiOWorkshop01.28.2016

WorkshopsinMATLAB&PythonOfferedbySOCkMid-to-endofFebruary§ CoveringMATLABtoolboxesandpublica/onworkflow(e.g.func/onhandles,memoryalloca/on,interfacingwithLaTeX)

§ ReplacingbothMathema/caandMATLABwithPython