General Computer Science General Computer Science for Engineers for Engineers CISC 106 CISC 106 Lecture 11 Lecture 11 James Atlas Computer and Information Sciences 07/27/2009
Dec 31, 2015
General Computer Science General Computer Science for Engineersfor Engineers
CISC 106CISC 106Lecture 11Lecture 11
James AtlasComputer and Information Sciences
07/27/2009
Lecture OverviewReview
◦ Structures in MATLABAdvanced MATLAB
◦ Classes isa function
◦ Cell ArraysGraphics
◦ Function callbacks (passing functions to functions)Project 2Lab 07Team evaluations for Project 1
Structures in MATLAB
A Database ApplicationGiven:
Name: ChrisCredits: 27Graduation: 12/15/2011
Name: SolaCredits: 18Graduation: 05/17/2011
Name: RogerCredits: 55Graduation: 06/10/2009
Name: TomCredits: 15Graduation: 05/22/2012
Given: We can implement it with arrays like this: Name Credits
Grad. 1 2 3 4
Name: ChrisCredits: 27Graduation: 12/15/2011
Name: SolaCredits: 18Graduation: 05/17/2011
Name: RogerCredits: 55Graduation: 06/10/2009
Name: TomCredits: 15Graduation: 05/22/2012
27Chris 12/15/2011
18Sola 05/17/2011
55Roger 06/10/2009
15Tom 05/22/2012
A Database Application
Given: OR we can do it like this an array with structs:
.d
Name: ChrisCredits: 27Graduation: 12/15/2011
Name: SolaCredits: 18Graduation: 05/17/2011
Name: RogerCredits: 55Graduation: 06/10/2009
Name: TomCredits: 15Graduation: 05/22/2012
Students (1). Name: ChrisStudents (1).Credits: 27Students (1). Graduation: 12/15/2011
Students (2).Name: SolaStudents (2).Credits: 18Students (2).Graduation: 05/17/2011
Students (3). Name: RogerStudents (3). Credits: 55Students (3). Graduation: 06/10/2009
Students (4). Name: TomStudents (4). Credits: 15Students (4). Graduation: 05/22/2012
A Database Application
record1.name = 'Me'; record2.name = 'Not Me';
record1.credits = 27; record2.credits = 30; record1.age = 10; record2.age = 14;
function [] = displayRecordName(record) disp(record.name);
displayRecordName(record1);displayRecordName(record2);
Initializing a structure
ClassesObject-oriented ProgrammingClasses represent types of
Objects
Similar to structs
Class definition
classdef dog properties name age endend
Class definition (cont’)classdef dog
properties
name
age
end
methods
function obj=dog(name, age)
obj.name = name;
obj.age = age;
end
end
end
The isa functionisa(object, ‘classname’)
isa(dog1, ‘dog’)
isa(dog1, ‘person’)
Arrays of classes?[dog1 dog2]
[dog1 dog2 person1] ?
Cell ArraysNormal array:
zeros(1,5) = 5 doubles[1 2 3 4] = 4 doubles
Cell array:{1 2 3 4} = ???
Cell Arrays (cont)
c = {1 2 3 4}c{1} = ‘hello’
Cell arrays store an object◦Can be another array◦Or a string◦... any struct/object/cell array
MATLAB GraphicsEvent-driven user interfaceA figure window contains:
◦axes, line, plot, image, and figure itself
◦controls such as buttons, menus, listboxes, textboxes use uicontrol, and uimenu objects
MATLAB Simple GUI
Function callbacksPassing a function to another
function
function []=functionPassTest(func, data)
func(data)
function []=printName(obj)
disp(obj.name)
cat.name = ‘Fifi’
functionPassTest(@printName, cat);
Project 2Team project
◦2-3 persons per team◦No team members the same as Project
1Due Today
◦Team name, members◦Choice of project focus
Due Aug 3◦Individual progress report
Final Project 2 Due Aug 12
Project 2 OptionsDatabase (Matlab or C)GameAnimationText EditorGraphics Editing Functions
(Matlab or C)
Lab 07Create some structures, classesExperiment with a cell arrayModify the simple GUI to add a
menu
Team Evaluations, Project 1