introduction to matlab class 4 instructors: hristiyan (chris) kourtev and xiaotao su, phd double...
TRANSCRIPT
![Page 1: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/1.jpg)
Introduction To MatlabClass 4
Instructors: Hristiyan (Chris) Kourtev
and Xiaotao Su, PhD
Double click the matlab icon
When prompted click “Skip”
![Page 2: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/2.jpg)
Optional Presentation Title
Unit Name
Managing data
• To manage basic numerical data we use matrices
• our_data = [1, 4, 10.59, 12; 2, 9, 18.76, 5; 3, 7, 1.13, 2];
Trial 1
Trial 2
Trial 3
Response
1
Response
2
(perhaps the
response time)
Response
3
Trial Number
![Page 3: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/3.jpg)
Optional Presentation Title
Unit Name
• our_data = [1, 4, 10.59, 12; 2, 9, 18.76, 5; 3, 7, 1.13, 2];
• To set the 4th row (4th trial) data:our_data(4, :) = [4, 7, 2.93, 3]
– or we could
our_data(5, 1) = 5;
our_data(5, 2) = 1;
our_data(5, 3) = 2.10;
our_data(5, 4) = 9;
• To get this 4th row data– trial_data = our_data(4, :)
: gets or sets all elements
from row or column
![Page 4: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/4.jpg)
Optional Presentation Title
Unit Name
%guessing_game.m
%test to see if subject is psychic
clear all;
%settings
num_trials = 5;
highest_number = 3;
%get info
subject_name = input('What is your name?', 's');
for t = 1:num_trials
%trial set up
random_num = ceil(rand*highest_number);
%perform experiment
start_time = GetSecs;
disp('I am thinking of a number between');
disp([' 1 and ', num2str(highest_number)]);
response = input('What is it?');
stop_time = GetSecs;
response_time = stop_time - start_time;
is_correct = (response==random_num);
if(is_correct)
disp('Right!');
else
disp(['Wrong! The correct answer was ', ...
num2str(random_num)]);
end
disp('Press any key to continue');
pause
disp('--------');
%record data
guessing_game_data(t, :) =...
[t, response_time, response, ...
random_num, is_correct ];
end
![Page 5: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/5.jpg)
Optional Presentation Title
Unit Name
%guessing_game.m
%test to see if subject is psychic
clear all;
%settings
num_trials = 5;
highest_number = 3;
%get info
subject_name = input('What is your name?', 's');
for t = 1:num_trials
%trial set up
random_num = ceil(rand*highest_number);
%perform experiment
start_time = GetSecs;
disp('I am thinking of a number between');
disp([' 1 and ', num2str(highest_number)]);
response = input('What is it?');
stop_time = GetSecs;
response_time = stop_time - start_time;
is_correct = (response==random_num);
if(is_correct)
disp('Right!');
else
disp(['Wrong! The correct answer was ', ...
num2str(random_num)]);
end
disp('Press any key to continue');
pause
disp('--------');
%record data
guessing_game_data(t, :) =...
[t, response_time, response, ...
random_num, is_correct ];
end
Task 1:
Write this section of the program
Hint:
input without ‘s’ is a good way
To get numeric responses from
The subject
![Page 6: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/6.jpg)
Optional Presentation Title
Unit Name
%guessing_game.m
%test to see if subject is psychic
clear all;
%settings
num_trials = 5;
highest_number = 3;
%get info
subject_name = input('What is your name?', 's');
for t = 1:num_trials
%trial set up
random_num = ceil(rand*highest_number);
%perform experiment
start_time = GetSecs;
disp('I am thinking of a number between');
disp([' 1 and ', num2str(highest_number)]);
response = input('What is it?');
stop_time = GetSecs;
response_time = stop_time - start_time;
is_correct = (response==random_num);
if(is_correct)
disp('Right!');
else
disp(['Wrong! The correct answer was ', ...
num2str(random_num)]);
end
disp('Press any key to continue');
pause
disp('--------');
%record data
guessing_game_data(t, :) =...
[t, response_time, response, ...
random_num, is_correct ];
end
![Page 7: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/7.jpg)
Optional Presentation Title
Unit Name
%guessing_game.m
%test to see if subject is psychic
clear all;
%settings
num_trials = 5;
highest_number = 3;
%get info
subject_name = input('What is your name?', 's');
for t = 1:num_trials
%trial set up
random_num = ceil(rand*highest_number);
%perform experiment
start_time = GetSecs;
disp('I am thinking of a number between');
disp([' 1 and ', num2str(highest_number)]);
response = input('What is it?');
stop_time = GetSecs;
response_time = stop_time - start_time;
is_correct = (response==random_num);
if(is_correct)
disp('Right!');
else
disp(['Wrong! The correct answer was ', ...
num2str(random_num)]);
end
disp('Press any key to continue');
pause
disp('--------');
%record data
guessing_game_data(t, :) =...
[t, response_time, response, ...
random_num, is_correct ];
end
![Page 8: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/8.jpg)
Optional Presentation Title
Unit Name
CSV format
• Stands for “Comma separated value”
• It is a simple text file for data storage
• Each data item is delimited (separated) by a comma
• Each data row is delimited by a return character
![Page 9: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/9.jpg)
Optional Presentation Title
Unit Name
Notepad example
• Start->run
• notepad
1, 4, 9.3
1, 9, 100
4, 0, 12
Save as test.csv
Double click -> opens in excel
![Page 10: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/10.jpg)
Optional Presentation Title
Unit Name
csvwrite
• saves a 2d matrix as a csv file
• csvwrite(FILENAME, MATRIX_VAR)
• my_matrix = [3, 5; 1, 2];
• csvwrite(‘my_data.csv’, my_matrix);
![Page 11: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/11.jpg)
Optional Presentation Title
Unit Name
%guessing_game.m
%test to see if subject is psychic
clear all;
%settings
num_trials = 5;
highest_number = 3;
%get info
subject_name = input('What is your name?', 's');
for t = 1:num_trials
%trial set up
random_num = ceil(rand*highest_number);
%perform experiment
start_time = GetSecs;
disp('I am thinking of a number between');
disp([' 1 and ', num2str(highest_number)]);
response = input('What is it?');
stop_time = GetSecs;
response_time = stop_time - start_time;
is_correct = (response==random_num);
if(is_correct)
disp('Right!');
else
disp(['Wrong! The correct answer was ', ...
num2str(random_num)]);
end
disp('Press any key to continue');
pause
disp('--------');
%record data
guessing_game_data(t, :) =...
[t, response_time, response, ...
random_num, is_correct ];
end
%data_storage
csvwrite([subject_name, '.csv'], …
guessing_game_data);
![Page 12: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/12.jpg)
Optional Presentation Title
Unit Name
csvread
• clear all;
• my_matrix = csvread(‘my_data.csv’);
• can be used to load parameters at the beginning of a program
• can be used to load data to analyze through matlab
![Page 13: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/13.jpg)
Optional Presentation Title
Unit Name
cell arrays
• this_is_a_matrix_and_a_vector = [5, 3, 9, 3]
• and_so_is_this = [‘hello’];
• which_is_the_same_as = [‘h’, ‘e’, ‘l’, ‘l’, ‘o’];
![Page 14: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/14.jpg)
Optional Presentation Title
Unit Name
cell arrays
• cell array provides a storage mechanism for dissimilar kinds of data
• they are like a matrix where each element is any other data type
example_cell_array = {‘cat’, 3, [5, 9];
‘zebra’, [10, 3; 9, 5], ‘dog’};
‘cat’ 3
‘zebra’ ‘dog’
5 9
10 3
9 5
![Page 15: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/15.jpg)
Optional Presentation Title
Unit Name
• a = example_cell_array{2, 3}
• example_cell_array{2, 1} = a
• example_cell_array{2, 2}(2, 1)
‘cat’ 3
‘zebra’ ‘dog’
5 9
10 3
9 5
![Page 16: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/16.jpg)
Optional Presentation Title
Unit Name
cell2csv
• Works just like csvwrite• Will only work with “simple” cell arrays
– no numeric vectors or matrices• data = {‘trial number’, ‘time’, ‘color’, ‘response’;
1, 5.99, ‘blue’, 3; 2, 4, ‘green’, 2;
3, 55, ‘yellow’, 2}
• cell2csv(‘somefile.csv’, data);
!Note: cell2csv is not a built in Matlab function. Download it here:http://ruccs.rutgers.edu/matlab_course/materials/summer_2010/class_7/cell2csv.m
![Page 17: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/17.jpg)
Optional Presentation Title
Unit Name
important note
• to add one data element to a cell array– data{5, 3} = 'yellow’
• curly braces
• To add one row of data– data(5, :) = {4, 2.93, ‘yellow’, 4}
• parenthesis
– data(trial+1, :) = {trial, time, color, response}
![Page 18: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/18.jpg)
Optional Presentation Title
Unit Name
Creating a vector of numbers
• This is similar to the way you create an iteration for a “for” loop
• x = (0:20) ----> x = [0, 1, … 20]
• x = (0.1:0.1:1) ---> x = [0.1, 0.2, … , 1.0]
• x = (0:2:20) ----> x = [0, 2, 4, … 20]
• x = (0:2:20)’ ---> vertical vector like the previous one
![Page 19: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/19.jpg)
Optional Presentation Title
Unit Name
discrete distributions and selecting segments
• you can use something like x=(0:20) to specify a discrete distribution of 21 different possibilities
• to select the first 6 elements you could sayy = x(1:6) ---> y would be [0, 1 … 5]
• Or to select the last 4 elements
• y = x(end-3:end) ---> y would be [17, 18, 19, 20]
![Page 20: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/20.jpg)
Optional Presentation Title
Unit Name
y = binopdf(x(1:6), 5, .8)
• used to generate a binomial distribution function the case in which one flips a weighted coin
• .8 probability of getting heads
• there are 6 possibilities (0 heads, 1 head… 5 heads
• y gives the probability of each of these outcomes
This function requires the stats toolbox
![Page 21: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/21.jpg)
Optional Presentation Title
Unit Name
Plotting
• Subplot will create a figure window for plotting
• subplot (2, 1, 2) will say we are going to create a (2 row, 1 column, …) figure. The last number specifies that we are currently going to write in the second element of this figure.
• plot(y) will create a graph on currently chosen section of the figure (specified by the third parameter in subplot)
![Page 22: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/22.jpg)
Optional Presentation Title
Unit Name
setting up the plot
• xlim([1 5]) %sets the limits of the x axis
• bar(y) %will use a bar graph
• ylabel(‘Probability of n’)
• xlabel(‘N’)
• title(‘Discrete distributions should be plotted as histograms’)
![Page 23: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/23.jpg)
Optional Presentation Title
Unit Name
more then one figure?
• figure %opens a new figure window
• All new subplots will go to the new figure
• subplot(2, 1, 1)
• bar(y)
• xlim([1 21]) %we want 21 possibilities
![Page 24: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/24.jpg)
Optional Presentation Title
Unit Name
more then one graph on a plot
• hold on %tells matlab to keep the previous graph and draw a new one on top
• stairs(cumsum(y), ‘r’)– cumsum(y) <--- each value is the sum of previous values of y
– ‘r’ makes the graph line red
– stairs will plot it as a staircase
• hold off % now any future graph additions will clear previous graphs on this plot
• legend(‘distribution’, ‘cumsum’)
![Page 25: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/25.jpg)
Optional Presentation Title
Unit Name
ezplot Easy-to-use function plotter
• ezplot(fun) plots the expression fun(x) over the default domain -2pi < x < 2pi.
• This example plots the implicitly defined function x2 - y4 = 0 over the domain [-2pi, 2pi]:
ezplot('x^2-y^4')
• You can specify a different domain by passing in a second argument to ezplot, in this case -6<x<6 and -2<y<1:
eq='y - sin(x) + 1/2'; ezplot(eq,[-6,6,-2,1])
![Page 26: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/26.jpg)
Optional Presentation Title
Unit Name
Solving Equations Using Matlab (symbolic toolbox)• http://people.clarkson.edu/~wwilcox/ES100/eqsolve.htm
• The present tutorial deals exclusively with numerical methods of solving algebraic and trigonometric equations, both single and several simultaneously, both linear and non-linear.
• Analytical solutions can be obtained using the methods described in the symbolic tutorial. When both symbolic and numerical methods work, sometimes one is simpler and sometimes the other.
![Page 27: Introduction To Matlab Class 4 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”](https://reader036.vdocuments.us/reader036/viewer/2022062500/5697bfde1a28abf838cb235b/html5/thumbnails/27.jpg)
Optional Presentation Title
Unit Name
Solving Equations Using Matlab (examples)
• “fzero” command - finds the value of x for f(x) = 0. e.g. For equation sin2(x) e-x/2 – 1 = 0
x = fzero('sin(x)^2*exp(-x/2)-1', -1)
• Using “solve” to solve linear and quadratic equations:
e.g. For equation y = x2 – 1, or y = 5x - 4
solve(‘x^2-1’);solve(‘5*x – 4’);
• And many more types of equations. Just read the tutorial and the help page for “solve”, “dsolve”, “fsolve”, “fzero”, etc.