Matlab Class 2 Xiaotao Su, Ph. D

Similar presentations


Presentation on theme: "Matlab Class 2 Xiaotao Su, Ph. D"— Presentation transcript:

1 Matlab Class 2 Xiaotao Su, Ph. D
Matlab Class 2 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS)

2 Character Vectors And Numeric Vectors
'hello world' is referred to as a character string or a character vector [35, 26.3, 11, 4] is a numeric vector These are the two main data types in matlab h e l o w r d (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) 35 26.3 11 4 (1) (2) (3) (4)

3 Character Vectors (aka Strings) And Numeric Vectors
How to convert between these two data types? What if I have a string, '39.5' and I want to add to it? num2str & str2num str2num('39.5') + 5 ['hello w', 'orld'] a = [3, 9]; b = [12.6, 8]; [a, b] c = ['1', num2str(39.5)] str2num(c) + 200

4 Taking inputs Create a new program called math.m % math.m %
% Carries out a series of calculations on two % numbers % written by Your Name July 2010

5 clear all; %take inputs num1=input('what is the first number?'); num2=input('what is the second number?'); %show calculations disp([num2str(num1), '+', num2str(num2), '=', num2str(num1+num2)]); disp([num2str(num1), '-', num2str(num2), '=', num2str(num1-num2)]);

6 boolean expressions == > >= < <= & | equals greater than
Boolean expressions either return 1 for true or 0 for false Possible operators: == > >= < <= & | equals greater than greater than or equal to less than and or

7 Note: Put operations inside parenthesis so they are preformed first.
1==1 (1 + 1)==2 (5 + 5) < 10 (5 + 5) <=10 (1 == 1) & (2==3) (1 == 1) | (2==3) 5 + (5 < 10) Note: Put operations inside parenthesis so they are preformed first.

8 Conditionals (if statements)
if(Boolean Expression) do something end you can also do this: if(boolean expression) else do something else or this: if(boolean expression) do something elseif(boolean expr2) do something else end

9 Back to math.m if ( (round(num1)==num1) & (round(num2)==num2) )
disp('num1 and num2 are integers') end

10 if ( (round(num1)==num1) & (round(num2)==num2) )
disp('num1 and num2 are integers') elseif(round(num1)==num1) disp('only num1 is an integer') elseif(round(num2)==num2) disp('only num2 is an integer') else disp('neither number is an integer') end

11 Task 1 == > >= < <= & | equals greater than
Have math.m tell me which number is larger then the other “the biggest number is …” == > >= < <= & | equals greater than greater than or equal to less than and or

12 Screen drawing and psychtoolbox
Screen Geometry Origin Coordinates are measured in pixels. X Positive -> Y Positive Max X and Y

13 How you typically work with the psychtoolbox
Back Buffer (invisible) Front Buffer

14 How you typically work with the psychtoolbox
Step 1: Draw Shape to the back buffer Front Buffer

15 How you typically work with the psychtoolbox
Step 2: Flip the back buffer to the front buffer

16 How you typically work with the psychtoolbox
Back Buffer is automatically cleared

17 How you typically work with the psychtoolbox
Now you can continue with your next frame of animation

18 How you typically work with the psychtoolbox
Flip the back buffer to the front buffer

19 How you typically work with the psychtoolbox
Back Buffer is automatically cleared

20 Set up program draw_stuff
% draw_stuff.m % % Draws stuff on the screen

21 Initialize the main window
% draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0;

22 Set up program draw_stuff
% draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions] =Screen(0,'OpenWindow', [0, 0, 0]); Vector specifying Screen color Command issued to the psychtoolbox Screen function 0 is main screen (allows for multiple monitors) [red, green, blue]

23 Set up program draw_stuff
% draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); Vector [x1, y1, x2, y2] Which could be: [0, 0, 800, 600] For an 800 X 600 display x1= 0 y1 = 0 x2= y2 = 600

24 Draw shape in back buffer
% draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_ptr, 'FillRect', [0,0,255], shape_dimensions); X1, Y1 Front buffer X2, Y2 Back buffer

25 Flip the back buffer to the front buffer
% draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_ptr, 'FillRect', [0,0,255], shape_dimensions); %Flip the buffers Screen(window_ptr,'Flip'); Front buffer Back buffer

26 Clear screen %leave the image up for 5 seconds WaitSecs(5);
<<<<snip>>>> clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_pointer, 'FillRect', [0,0,255], shape_dimensions); %Copy to main window Screen(window,'Flip'); %leave the image up for 5 seconds WaitSecs(5); %Clear screen and return control to matlab clear screen;

27 Tic and toc tic starts a timer
toc tells you the number of seconds since when you ran toc

28 While loop while is a type of loop that runs while a condition is true
while(boolean statement) %do something many times end %you would stop repeating the loop when the %boolean statement is false OR if you use %break

29 While program tic loops = 0; while(toc<5) loops = loops+1;
disp(['number of loops = ', num2str(loops)]); disp(['number of seconds = ', num2str(toc)]); end

30 While program stopping after 10 loops
tic loops = 0; while(toc<5) loops = loops+1; disp(['number of loops = ', num2str(loops)]); disp(['number of seconds = ', num2str(toc)]); if(loops>=10) break; end

31 Making a movie % draw_stuff.m % % Draws stuff on the screen clear all;
which_screen=0; [window_ptr, screen_dimensions] …=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_pointer, 'FillRect', … [0,0,255], shape_dimensions);

32 Task 2 Make the rectangle move to the bottom of the screen at 5 pixels per frame, then move right when it hits the bottom. When it hits the right, the program ends Hint: shape_dimensions(1) is x1, (2) is y1, (3) is x2, 4 is y2

33 Task 3 When the rectangle hits the bottom make it change colors to red
Hint: color is a 3 number vector red is [255, 0, 0]


Download ppt "Matlab Class 2 Xiaotao Su, Ph. D"

Similar presentations


Ads by Google