WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large...
Transcript of WiO Workshop 01.28...MATLAB Organizing data in your workspace Using for loops to deal with large...
WiOWorkshop 01.28.2016
Presenter:KelseyMiller
MATrixLABoratory
§ Mul/-paradigm,numericalcompu/ngenvironment
§ 4thgenprogramminglanguage§ Allowsmatrixmanipula/on,func/onanddataplo@ng,algorithmimplementa/on,userinterfacecrea/on,andinterfacingwithotherlanguagesincluding3rdgenlanguages:C,C++,Java,FortranandPython
MATLAB
WiOWorkshop01.28.2016
Inlayman’sterms:§ Powerful,user-friendlytoolfordataanalysisthatplayswellwithotherlanguages
MATLAB
WiOWorkshop01.28.2016
§ LoadingdataintoMATLAB
§ Organizingdatainyourworkspace
§ Usingforloopstodealwithlargedatasets
§ Expor/ngyourdata
WiOWorkshop01.28.2016
WiOWorkshop01.28.2016
§ load§ importdata§ xlsread§ imread§ fitsread
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
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
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
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
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
WiOWorkshop01.28.2016
§ Naviga/ngthecommandwindow
§ Calling/par//oningselecteddata
§ Cellarrays§ Datacubes
WiOWorkshop01.28.2016
§ Printworkingdirectorypwd
§ Changedirectorycddirectorynamecd..
§ Createnewdirectorymkdirdirectoryname
§ Removedirectoryrmdirdirectorynames
WiOWorkshop01.28.2016
§ Copyfilescopyfilefilename-to-be-copiedfoldername-to-copy-to
§ Movefilesmovefilefilename-to-be-movedfoldername-to-move-to
§ ListfileslsORdirdirectoryname
§ Searchspecificfiletypels*.filetype
§ Deletefilesdeletefilename
Calling/Partitioning Selected Data
WiOWorkshop01.28.2016
§ CallingspecificcolumnfrommatrixAx=A(:,columnnumber)
§ CallingspecificrowfrommatrixA
x=A(rownumber,:)§ CallspecificvaluefrommatrixA
x=A(rownumber,columnnumber)
WiOWorkshop01.28.2016
§ AssigningdatatonewmatrixB§ CreatematrixBB=zeros(numberofrows,numberofcolumns)
§ FillmatrixBwithdatafrommatrixAB(:,columnnumber)=A(:,columnnumber)
§ Example:example_Selec/ngData.m
Calling/Partitioning Selected Data
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
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
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
WiOWorkshop01.28.2016
§ Usingforloopstoloadmul/plefiles
§ Usingforloopsindataanalysis
WiOWorkshop01.28.2016
§ Usefultouseforloopswhenloadinglargenumberoffilesintoyourworkspace
§ Thinkaheadwhencomingupwithyourdatanamingscheme:§ Goodexample:data_1.fitsdata_2.fits…
§ Allowsforeasyimplementa/onofaforloopinbothloadingandorganizingyourdatafilesinyourworkspace
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
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
WiOWorkshop01.28.2016
§ Usingforloopstoiteratethroughdatacubes
§ ExampleProblem:Findingthemeanofeveryimagestoredinadatacube
N=numberoffilesindatacubeMvector=zeros(1,N)fork=1:N
Mvector(k)=mean2(DataCube(:,:,k))end§ Example:
example_DataCube.m
WiOWorkshop01.28.2016
§ save§ saveas§ xlswrite§ fitswrite§ Communica/ngwithZemax
WiOWorkshop01.28.2016
§ Func/on:Savesworkspacevariablesto.matfileorASCII
§ Syntax:savefilenamesavefilenamevariablessave(‘filename’,‘variables’,’-format’)save(‘filename’,’variables’,‘-append’)§ Example:examplesave.m
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
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
WiOWorkshop01.28.2016
§ Func/on:WritesanimagetoaFITSfile§ Syntax:fitswrite(imagedata,‘filename’)§ Example:examplefitswrite.m
WiOWorkshop01.28.2016
§ Func/on:UsesZemax’sbuiltinDDE(DynamicDataExchange)servertocommunicatewithMATLABasaclientapplica/on.
§ CantalkbothwaysbetweenMATLABandZemax§ PushlensdatafromMATLABintotheZemaxLDE(LensDataEditor)
§ Pulldata/plotsfromZemaxintotheMATLABworkspace
§ Example:ZemaxMatlabCom.m
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
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/
WiOWorkshop01.28.2016
WorkshopsinMATLAB&PythonOfferedbySOCkMid-to-endofFebruary§ CoveringMATLABtoolboxesandpublica/onworkflow(e.g.func/onhandles,memoryalloca/on,interfacingwithLaTeX)
§ ReplacingbothMathema/caandMATLABwithPython