wio workshop 01.28...matlab organizing data in your workspace using for loops to deal with large...
TRANSCRIPT
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