160 likes | 240 Views
Matlab Class 6 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS) and Chris Kourtev. Managing data. To manage basic numerical data we use matrices
E N D
Matlab Class 6Xiaotao Su, Ph.D.Visual Psychophysicist & IT Group LeaderRutgers Center for Cognitive Science (RuCCS)andChris Kourtev
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 Trial Number Response2 (perhaps the response time) Response3 Response1
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 elementsfrom row or column
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 %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 %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 %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 %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;
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
Notepad example • Start->run • notepad 1, 4, 9.3 1, 9, 100 4, 0, 12 Save as test.csv Double click -> opens in excel
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);
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 %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; %data_storage csvwrite([subject_name, '.csv'], … guessing_game_data);
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
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’];
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’};
a = example_cell_array{2, 3} • example_cell_array{2, 1} = a • example_cell_array{2, 2}(2, 1)
Next class • saving cell arrays as csv • in class project