Code and Output
Code 4.1.1:
a = 1;
b = 2;
c = a + b % addition
d = 1;
e = c - d % subtraction
f = 4;
g = f * 3; % multiplication (note the use of the asterisk, *)
h = f/g % division
Output 4.1.1:
c =
3
e =
2
h =
0.3333
Code 4.1.2:
ii = 2;
j = 3;
k = ii^j % ii raised to the j power
Output 4.1.2:
k =
8
Code 4.1.3:
m = 64;
n = 1/2;
p = m^n
Output 4.1.3:
p = 8
Code 4.1.4:
pp = 2^.2415
qq = 2^pi
Output 4.1.4:
pp =
1.1822
qq =
8.8250
Code 4.2.1:
q = sqrt(m)
Output 4.2.1:
q = 8
Code 4.2.2:
remPiOver3 = rem(pi,3)
Output 4.2.2:
remPiOver3 =
0.1416
Code 4.2.3:
subject_number = 7;
remainder = rem(subject_number,2)
Output 4.2.3:
remainder =
1
Code 4.2.4:
abs([-1 3 -5 7])
Output 4.2.4:
ans =
1 3 5 7
Code 4.2.5:
k = exp(5)
Output 4.2.5:
k =
7.3891
Code 4.2.6:
exp(1)
Output 4.2.6:
ans =
2.7183
Code 4.2.7:
e = exp(1)
e = 12
Output 4.2.7:
e =
2.7183
e =
12
Code 4.2.8:
log(k)
Output 4.2.8:
ans =
5
Code 4.2.9:
log2of_128 = log2(128)
two_tothe_7 = 2^7
log10of_1000 = log10(1000)
ten_tothe_3 = 10^3
Output 4.2.9:
log2of_128 =
7
two_tothe_7 =
128
log10of_1000 =
3
ten_tothe_3 =
1000
Code 4.2.10:
valueof_ln_30 = log(30)
e_tothe_3point4012 = exp(valueof_ln_30)
valueof_log2_30 = log2(30)
two_tothe__4point9069 = 2^ valueof_log2_30
valueof_log10_30 = log10(30)
ten_tothe_1point4771 = 10^ valueof_log10_30
Output 4.2.10:
valueof_ln_30 =
3.4012
e_tothe_3point4012 =
30.0000
valueof_log2_30 =
4.9069
two_tothe__4point9069 =
30.0000
valueof_log10_30 =
1.4771
ten_tothe_1point4771 =
30.0000
Code 4.2.11:
log5(625)
Output 4.2.11:
>> log5(30)
??? Undefined function or variable 'log5'.
Code 4.2.12:
logtobase5of_625 = log(625)/log(5)
FiveTotheFourth = 5^4
Output 4.2.12:
logtobase5of_625 =
4
FiveTotheFourth =
625
Code 4.2.13:
sqrt(-1)
Output 4.2.13:
ans =
0 + 1.0000i
Code 4.2.14:
imaginary = sqrt(1*-1)
complex1 = 2*imaginary
complex2 = imaginary + (0 + 3i)
complex3 = imaginary – 3
complex4 = complex1+complex2-complex3
Output 4.2.14:
imaginary =
0 + 1.0000i
complex1 =
0 + 2.0000i
complex2 =
0 + 4.0000i
complex3 =
-3.0000 + 1.0000i
complex4 =
3.0000 + 5.0000i
Code 4.2.15:
clear all
% Review of special numbers other than NaN, namely, pi, and i.
% Reminder that the default value of i can be overwritten
% but can then be restored by clearing i
The_Special_Number_Pi = pi
The_Special_Number_Sqrt_Minus_1 = i
i = 10;
i_Redefined = i
clear i
After_Clearing_i = i
Code 4.2.15:
The_Special_Number_Pi =
3.1416
The_Special_Number_Sqrt_Minus_1 =
0 + 1.0000i
i_Redefined =
10
After_Clearing_i =
0 + 1.0000i
Code 4.3.1:
r = 2;
s = 3;
t = 4;
u = 5;
v = 6;
w(1) = r * s - t ^ u /v;
w(2) = r * s - (t ^ u)/v;
w(3) = r * (s - t ^ u)/v;
w(4) = r * (s - t) ^ u /v;
w(5) = (r * s) - t ^ u /v;
w(6) = (r * s - t) ^ u /v;
w(7) = (r * s - t) ^(u /v);
w(8) = ((r * s - t) ^ u)/v;
w(9) = r * (s - t ^ u /v);
w' % list w(1) through w(9) in column form
Output 4.3.1:
ans =
-164.6667
-164.6667
-340.3333
-0.3333
-164.6667
5.3333
1.7818
5.3333
-335.3333
Code 4.3.2:
w(9) = r * (s - t ^ u/v;
Output 4.3.2:
??? w(9) = r * (s - t ^ u/v;
|
Error: Incomplete or misformed expression or statement.
Code 4.4.1:
uniform_random_distribution = rand(4,8)
Output 4.4.1:
uniform_random_distribution =
0.6225 0.4709 0.2259 0.3111 0.9049 0.2581 0.6028 0.2967
0.5870 0.2305 0.1707 0.9234 0.9797 0.4087 0.7112 0.3188
0.2077 0.8443 0.2277 0.4302 0.4389 0.5949 0.2217 0.4242
0.3012 0.1948 0.4357 0.1848 0.1111 0.2622 0.1174 0.5079
Code 4.4.2:
uniform_integer_distribution = randi(5,1,8)
Output 4.4.2:
uniform_integer_distribution =
2 2 5 1 4 1 2 3
Code 4.4.3:
normaldistribution = randn(4,8)
Output 4.4.3:
normaldistribution =
1.7249 -0.9441 -0.2948 0.1133 0.0619 0.4322 -0.0327 -0.8380
-1.0620 0.0485 1.0637 -1.2334 1.7941 0.1206 -0.1556 0.2336
0.8708 -0.5808 1.1224 -1.0238 0.7657 -1.9044 0.8514 0.5481
1.4471 0.3301 1.6000 -0.9096 0.1164 1.1801 0.8001 1.3894
Code 4.4.4:
mu = 10;
stdev = 15;
new_distribution = (normaldistribution * stdev) + mu
Output 4.4.4:
new_distribution =
5.1879 10.3649 17.0985 4.1751 -16.7249 8.6445 7.5049 -10.1910
-8.9439 -0.0138 25.9044 18.3431 9.5045 -5.8584 -8.7725 1.1299
8.7720 4.9679 34.5157 13.6902 0.2338 12.1307 7.8305 8.9384
43.4989 -12.2061 4.8443 -1.8680 8.8181 29.9599 26.2904 19.0650
Code 4.4.5:
oneSubjectsOrder = randperm(8)
Output 4.4.5:
oneSubjectsOrder =
6 2 3 8 7 1 5 4
Code 4.4.6:
r = randperm(32)
permutedIntegers = reshape(r,4,8)
Output 4.4.6:
permutedIntegers =
4 2 9 28 1 25 30 11
3 12 14 22 7 29 27 21
26 20 13 24 18 23 16 19
6 17 32 31 15 10 8 5
Code 4.4.7:
a = randi(8,1,10)
b = randi(8,1,10)
rng('default') % or rand('twister',5489) for earlier releases
c = randi(8,1,10)
Output 4.4.7:
a =
1 8 1 7 7 7 1 4 3 7
b =
4 8 2 3 2 2 7 5 5 2
c =
1 8 1 7 7 7 1 4 3 7
Code 4.4.8:
rng('default')
d = randi(8,1,10)
rng('default')
rng('shuffle')
currentRandomNumberState = rng;
e = randi(8,1,10)
Output 4.4.8:
d =
1 8 1 7 7 7 1 4 3 7
e =
6 4 4 6 4 1 8 4 5 2
Code 4.4.9:
rng('shuffle')
rng(currentRandomNumberState);
f = randi(8,1,10)
Output 4.4.9:
f =
6 4 4 6 4 1 8 4 5 2
Code 4.5.1:
r = [7 33 39 26 8 18 15 4 0];
sum_r = sum(r)
mean_r = mean(r)
median_r = median(r)
standard_deviation_r = std(r)
variance_r = var(r)
minimum_r = min(r)
maximum_r = max(r)
Output 4.5.1:
sum_r =
150
mean_r =
16.6667
median_r =
15
standard_deviation_r =
13.5277
variance_r =
183
minimum_r =
0
maximum_r =
39
Code 4.5.2:
r = randi(10,3,5)
sum_vector = sum(r)
mean_vector = mean(r)
median_vector = median(r)
standard_deviation_vector = std(r)
variance_vector = var(r)
minimum_vector = min(r)
maximum_vector = max(r)
Output 4.5.2:
r =
2 8 1 7 4
5 10 9 8 7
10 7 10 8 2
sum_vector =
17 25 20 23 13
mean_vector =
5.6667 8.3333 6.6667 7.6667 4.3333
median_vector =
5 8 9 8 4
standard_deviation_vector =
4.0415 1.5275 4.9329 0.5774 2.5166
variance_vector =
16.3333 2.3333 24.3333 0.3333 6.3333
minimum_vector =
2 7 1 7 2
maximum_vector =
10 10 10 8 7
Code 4.5.3:
s = [1:20];
t = [50:-1:31];
correlation_matrix = corrcoef(s,t)
r = correlation_matrix(1,2)
Output 4.5.3:
correlation_matrix =
1 -1
-1 1
r =
-1
Code 4.6.1:
r = randi(10,3,5);
r(3,3:4) = NaN;
r(1:2,2:3) = NaN;
r
sum_vector = sum(r)
mean_vector = mean(r)
Output 4.6.1:
r =
2 NaN NaN 7 4
5 NaN NaN 8 7
10 7 NaN NaN 2
sum_vector =
17 NaN NaN NaN 13
mean_vector =
5.6667 NaN NaN NaN 4.3333
Code 4.6.2:
Data = [1 NaN 4 3 NaN 4]
Data_that_are_not_Nans = Data(not(isnan(Data)))
Mean_of_Data_without_Nans = mean(Data_that_are_not_Nans)
Output 4.6.2:
Data =
1 NaN 4 3 NaN 4
Data_that_are_not_Nans =
1 4 3 4
Mean_of_Data_without_Nans =
3
Code 4.6.3:
r
Column_Means = nanmean(r)
Column_Standard_Deviations = nanstd(r)
Output 4.6.3:
r =
2 NaN NaN 7 4
5 NaN NaN 8 7
10 7 NaN NaN 2
Column_Means =
5.6667 7.0000 NaN 7.5000 4.3333
Column_Standard_Deviations =
4.0415 0 NaN 0.7071 2.5166
Code 4.7.1:
u = [1:6]
v = u + 20
Output 4.7.1:
u =
1 2 3 4 5 6
v =
21 22 23 24 25 26
Code 4.7.2:
w = v - 20
Output 4.7.2:
w =
1 2 3 4 5 6
Code 4.7.3:
x = w * 2
Output 4.7.3:
x =
2 4 6 8 10 12
Code 4.7.4:
y = x / 2
Output 4.7.4:
y =
1 2 3 4 5 6
Code 4.7.5:
Z1 = [1:6;7:12]
Z2 = Z1 + 2
Output 4.7.5:
Z1 =
1 2 3 4 5 6
7 8 9 10 11 12
Z2 =
3 4 5 6 7 8
9 10 11 12 13 14
Code 4.7.6:
Z3 = Z1 + Z2
Output 4.7.6:
Z3 =
4 6 8 10 12 14
16 18 20 22 24 26
Code 4.7.7:
Z4 = Z1 - 2
Z5 = Z1 – Z2
Output 4.7.7:
Z4 =
-1 0 1 2 3 4
5 6 7 8 9 10
Z5 =
-2 -2 -2 -2 -2 -2
-2 -2 -2 -2 -2 -2
Code 4.7.8:
aa = [1:4;5:8]
bb = [4:-1:1;8:-1:5]
cc = aa .* bb
Output 4.7.8:
aa =
1 2 3 4
5 6 7 8
bb =
4 3 2 1
8 7 6 5
cc =
4 6 6 4
40 42 42 40
Code 4.7.9:
dd = aa ./ bb
Output 4.7.9:
dd =
0.2500 0.6667 1.5000 4.0000
0.6250 0.8571 1.1667 1.6000
Code 4.7.10:
dd = aa .^ .25
Output 4.7.10:
dd =
1.0000 1.1892 1.3161 1.4142
1.4953 1.5651 1.6266 1.6818
Code 4.7.11:
dd3 = dd * 3
halfdd = dd/2
Output 4.7.11:
dd3 =
3.0000 3.5676 3.9483 4.2426
4.4859 4.6953 4.8798 5.0454
halfdd =
0.5000 0.5946 0.6581 0.7071
0.7477 0.7825 0.8133 0.8409
Code 4.7.12:
allFives = 5 * ones(2,7)
allNans = NaN * ones(2,5)
Output 4.7.12:
allFives =
5 5 5 5 5 5 5
5 5 5 5 5 5 5
allNans =
NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN
Code 4.7.13:
x = [1:8];
y = x.^2
d1y = diff(y)
d2y = diff(d1y)
d3y = diff(d2y)
Output 4.7.13:
y =
1 4 9 16 25 36 49 64
d1y =
3 5 7 9 11 13 15
d2y =
2 2 2 2 2 2
d3y =
0 0 0 0 0
Code 4.8.1:
R = [
cos(pi/6) -sin(pi/6)
sin(pi/6) cos(pi/6)
]
originalradiuspoint = [1;0]
radiusrotatedOnce = R * originalradiuspoint
radiusrotatedFourMoreTimes = R^4 * radiusrotatedOnce
Output 4.8.1:
R =
0.8660 -0.5000
0.5000 0.8660
originalradiuspoint =
1
0
radiusrotatedOnce =
0.8660
0.5000
radiusrotatedFourMoreTimes =
-0.8660
0.5000
Code 4.8.2:
radiusrotatedFourMoreTimes_Complex = ...
radiusrotatedFourMoreTimes(1) + radiusrotatedFourMoreTimes(2) * i
Output 4.8.2:
radiusrotatedFourMoreTimes_Complex =
-0.8660 + 0.5000i
Code 4.8.3:
vectorR1 = [1,0]; % originalradiuspoint
vectorR2 = [0.8660, 0.5]; % radiusrotatedOnce
dotR1R2 = dot(vectorR1, vectorR2)
RotationR1R2_radians = acos(dotR1R2)
RotationR1R2_degrees = RotationR1R2_radians *180/pi
Output 4.8.3:
dotR1R2 =
0.8660
RotationR1R2_radians =
0.5236
RotationR1R2_degrees =
30.0029
Code 4.8.4:
vectorR1 = [1,0]; % originalradiuspoint
vectorR3 = [-0.8660, 0.5]; % radiusrotatedFourMoreTimes
dotR1R3 = dot(vectorR1, vectorR3)
RotationR1R3_radians = acos(dotR1R3)
RotationR1R3_degrees = RotationR1R3_radians *180/pi
Output 4.8.4:
dotR1R3 =
-0.8660
RotationR1R3_radians =
2.6179
RotationR1R3_degrees =
149.9971
Code 4.8.5:
vectorR1 = [1,0,0];
vectorR3 = [-0.8660, 0.5,0];
AxisOfRotation = cross(vectorR1,vectorR3)
Output 4.8.5:
AxisOfRotation =
0 0 0.5000
Code 4.9.1:
r = [3 1 2]
sorted_r = sort(r)
Output 4.9.1:
r =
3 1 2
sorted_r =
1 2 3
Code 4.9.2:
rr = [randperm(10)' randperm(10)']
srr1 = sort(rr)
Output 4.9.2:
rr =
10 9
9 4
5 5
1 2
4 10
2 6
7 7
8 8
6 1
3 3
srr1 =
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
Code 4.9.3:
srr2 = sortrows(rr,1)
srr3 = sortrows(srr2,-2)
Output 4.9.3:
srr2 =
1 2
2 6
3 3
4 10
5 5
6 1
7 7
8 8
9 4
10 9
srr3 =
4 10
10 9
8 8
7 7
2 6
5 5
9 4
3 3
1 2
6 1
Code 4.9.4:
subject = randperm(6)
thedata = randi(8,6);
mydata = [subject; thedata]
mydataSortedbySubject = [sortrows(mydata',1)]'
Output 4.9.4:
subject =
2 3 4 1 6 5
mydata =
2 3 4 1 6 5
6 3 5 4 7 7
5 7 4 1 1 5
6 3 8 1 6 1
4 4 7 5 8 6
3 2 6 7 6 5
4 2 7 7 5 7
mydataSortedbySubject =
1 2 3 4 5 6
4 6 3 5 7 7
1 5 7 4 5 1
1 6 3 8 1 6
5 4 4 7 6 8
7 3 2 6 5 6
7 4 2 7 7 5
Code 4.10.1:
dd = [
1.0000 1.1892 1.3161 1.4142
1.4953 1.5651 1.6266 1.6818]
round(dd)
Output 4.10.1:
dd =
1.0000 1.1892 1.3161 1.4142
1.4953 1.5651 1.6266 1.6818
ans =
1 1 1 1
1 2 2 2
Code 4.10.2:
floor(dd)
Output 4.10.2:
ans =
1 1 1 1
1 1 1 1
Code 4.10.3:
ceil(dd)
Output 4.10.3:
ans =
1 2 2 2
2 2 2 2
Code 4.10.4:
fix_dd = fix(dd)
fix_minus_dd = fix(-dd)
floor_minus_dd = floor(-dd)
Output 4.10.4:
fix_dd =
1 1 1 1
1 1 1 1
fix_minus_dd =
-1 -1 -1 -1
-1 -1 -1 -1
floor_minus_dd =
-1 -2 -2 -2
-2 -2 -2 -2
Code 4.10.5:
disp(' a floor(a) fix(a) round(a) ceil(a)');
a = (-2:.25:2)';
b = [a floor(a) fix(a) round(a) ceil(a)];
disp(b)
Output 4.10.5:
a floor(a) fix(a) round(a) ceil(a)
-2.0000 -2.0000 -2.0000 -2.0000 -2.0000
-1.7500 -2.0000 -1.0000 -2.0000 -1.0000
-1.5000 -2.0000 -1.0000 -2.0000 -1.0000
-1.2500 -2.0000 -1.0000 -1.0000 -1.0000
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-0.7500 -1.0000 0 -1.0000 0
-0.5000 -1.0000 0 -1.0000 0
-0.2500 -1.0000 0 0 0
0 0 0 0 0
0.2500 0 0 0 1.0000
0.5000 0 0 1.0000 1.0000
0.7500 0 0 1.0000 1.0000
1.0000 1.0000 1.0000 1.0000 1.0000
1.2500 1.0000 1.0000 1.0000 2.0000
1.5000 1.0000 1.0000 2.0000 2.0000
1.7500 1.0000 1.0000 2.0000 2.0000
2.0000 2.0000 2.0000 2.0000 2.0000
Code 4.11.1:
n = 4;
magic(n)
Output 4.11.1:
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Code 4.11.2:
calendar(1776,7)
Output 4.11.2:
Jul 1776
S M Tu W Th F S
0 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 0 0 0
0 0 0 0 0 0 0
Code 4.12.1:
rng('default')
A = randi(9,3,3)
sum(A)
Output 4.12.1:
A =
8 9 3
9 6 5
2 1 9
ans =
19 16 17
Solutions
% Solutions_Chapter_04
% Solutions for selected problems from MATLAB for Behavioral Scientists,
% Second Edition (D. A. Rosenbaum, J. Vaughan, & B. Wyble),
% (c) 2015, Taylor & Francis
% To generate the solution for one problem, copy and run the code for that
% problem in a file or paste it into the Command window. Show the Command
% window to see the results.
% To generate sll the solutions for Chapter 4, save this code as a
% MATLAB script file and run the program.
% Problem 4.12.1
% You have done a study on the effects of five different treatments on the
% performance of two groups of participants. One group had earlier exposure
% to the task, causing their mean score to be 15 points higher than for the
% first-time group. The data for the two groups are as follows:
First_Time_Group = [71 78 80 86 91];
Second_Time_Group = [86 91 97 97 110];
%
% What single line of code will remove the 15-point advantage for the
% Second_Time_Group?
clc
commandwindow
fprintf('\n\n %s\n\n','Output 4.12.1')
Second_Time_Group_Corrected = Second_Time_Group - 15
% Problem 4.12.2
% Continuing with the study of the two groups and using the original
% values of First_Time_Group and the transformed value of Second_Time_Group,
% compute the mean and standard deviation of First_Time_Group, the mean and
% standard deviation of Second_Time_Group, and the mean and standard
% deviation of the paired differences between First_Time_Group and
% Second_Time_Group. Use variable names that will make it easy to
% understand the output.
fprintf('\n\n %s\n\n','Output 4.12.2')
fprintf('Solution left to the student.\n\n');
% Problem 4.12.3
% Assign random permutations of 8 treatments, numbered 1 to 8, to each of
% 4 participants.
fprintf('\n\n %s\n\n','Output 4.12.3')
Treatments = [randperm(8);randperm(8);randperm(8);randperm(8);]
% OR...
Treatments(1,1:8) = randperm(8);
Treatments(2,1:8) = randperm(8);
Treatments(3,1:8) = randperm(8);
Treatments(4,1:8) = randperm(8);
Treatments
% Problem 4.12.4
% Amy participated in a gymnastics competition. She received the following
% scores in each of 4 events.
% Vault: 8.9, 8.7, 8.2, 9.1, 9.0
% Uneven_bar: 9.5, 9.3, 9.3, 9.25, 8.9
% Balance_beam: 8.9, 8.9, 8.7, 8.6, 8.5
% Floor: 8.9, 8.8, 8.8, 8.7, 8.9
% Amy's final score for any given event needs to be the mean score after
% removing the lowest and highest score for that event. Write a program that
% computes Amy's final score in each apparatus and then the total of all her
% final scores.
fprintf('\n\n %s\n\n','Output 4.12.4')
Vault = [8.9, 8.7, 8.2, 9.1, 9.0];
Uneven_bar = [9.5, 9.3, 9.3, 9.25, 8.9];
Balance_beam = [8.9, 8.9, 8.7, 8.6, 8.5];
Floor = [8.9, 8.8, 8.8, 8.7, 8.9];
Vault_sort = sort(Vault);
Uneven_bar_sort = sort(Uneven_bar);
Balance_beam_sort = sort(Balance_beam);
Floor_sort = sort(Floor);
TotalScore = mean(Vault_sort(2:4)) + ...
mean(Uneven_bar_sort(2:4)) + ...
mean(Balance_beam_sort(2:4)) + ...
mean(Floor_sort(2:4))
% Problem 4.12.5
%
% You are preparing stimuli for an experiment and discover a mistake in
% the final column of values on which the stimuli will be based. Each value
% in the final column needs to be squared. Write a program to correct the
% error using just one command. Don't just square each mistaken value by
% hand. The data that need to be corrected are as follows:
fprintf('\n\n %s\n\n','Output 4.12.5')
fprintf('Solution left to the student.\n\n');
% Problem 4.12.6
%
% Use MATLAB to verify that the right column of magic(3) sums to 15, and
% that each diagonal of magic(3) sums to 15.
fprintf('\n\n %s\n\n','Output 4.12.6')
m3 = magic(3);
Sum_C3 = sum(m3(:,3))
Sum_Main_Diag = sum([m3(1,1) m3(2,2) m3(3,3)])
Sum_Sec_Diag = sum([m3(3,1) m3(2,2) m3(1,3)])
% Problem 4.12.7
%
% Earvin "Magic" Johnson wore jersey number 32 when he played basketball
% for the Los Angeles Lakers. Verify that the top row and rightmost
% column of magic(32) both sum to the same number. Can you think
% of an easy way to check the sum of all the columns with one
% command? Likewise for the sum of all the rows? How about checking
% the main diagonal? (Hint: type doc diag in the command window).
% Now compute the sum of the secondary diagonal (top right to bottom
% left), as efficiently as possible. Hint: type doc fliplr in the
% command window.
fprintf('\n\n %s\n\n','Output 4.12.7')
fprintf('Solution left to the student.\n\n');
% Problem 4.12.8
% Generate a set of 1000 scores (satscores) in a 100×10 table that
% are normally distributed as ideal SAT scores (mean 500, sd = 100).
% Verify that the mean and standard deviation of each column are near
% 500 and 100, respectively.
% SOLUTION NOTE: the exact answers will vary with the state of the random
% number generator!
fprintf('\n\n %s\n\n','Output 4.12.8')
satscores = round(randn(100,10)*100)+500;
ColMeans = mean(satscores)
GrandMean = mean(mean(satscores))
ColStds = std(satscores)
MeanStd = mean(std(satscores))
% satscores
% Problem 4.12.9
% Make four 1×1000 matrices of random numbers, v1, v2, v3, and v4,
% using randn, and compute W1 = v1 + v2, W2 = v1 + v3, and W3 = v3 + v4.
% What are the correlations among W1, W2, and W3? If you've had a
% statistics course, explain the difference between the values of these
% correlations in terms of the sources of variability for W1, W2, and W3.
fprintf('\n\n %s\n\n','Output 4.12.9')
v1 = randn(1,1000);
v2 = randn(1,1000);
v3 = randn(1,1000);
v4 = randn(1,1000);
W1 = v1 + v2;
W2 = v1 + v3;
W3 = v3 + v4;
c12 = corrcoef(W1,W2);
c13 = corrcoef(W1,W3);
c23 = corrcoef(W2,W3);
r12 = c12(1,2)
r13 = c13(1,2)
r23 = c23(1,2)
% Problem 4.12.10
%
% Create SATs, a 1400 ×2 matrix of normally distributed random
% multiples of 10 (i.e. 200, 210, 220, etc.) with a mean of 500
% and a standard deviation of 100, using randn, round, and other
% operations. Don?t print it out! Find the mean and standard deviation
% of each column.
fprintf('\n\n %s\n\n','Output 4.12.10')
fprintf('Solution left to the student.\n\n');
% Problem 4.12.11
% The following code generates a 3×3 matrix, A, and reports the sum of
% the columns of A as a row.
% Code 4.12.11:
fprintf('\n\n %s\n\n','Output 4.12.11')
rng('default')
A = randi(9,3,3);
sum(A);
%
% Output 4.12.11:
% A =
% 8 9 3
% 9 6 5
% 2 1 9
% ans =
% 19 16 17
%
% Add exactly one character to the command sum(A), to report
% the sum of the rows of A, as a row.
SumRowsAinaColumn = sum(A')
% Add exactly two characters to the command sum(A), to again report the
% sum of the rows of A, but as a column. (There are two solutions to this one!)
SumRowsAinaRow_1 = sum(A')'
SumRowsAinaRow_2 = sum(A,2)
% Add exactly three characters to the command sum(A), to report the sum
% of all elements of A.
SumAllofA_1 = sum(A(:))
% Add exactly five characters to the command sum(A), to again report the
% sum of all elements of A.
SumAllofA_2 = sum(sum(A))
% Problem 4.12.12
%
% For the statistically minded, the matrix A, generated in Code 4.12.11
% just after the random number generator was initiated, has three 9's,
% but no 4 or 7. Use MATLAB to compute the probability of the next
% (or any future) such matrix having no repeated digits.
% SOLUTION NOTE: For all the digits to be different, the first can be any
% digit, the second can be any of the eight remaining digits, the third can
% be any of the seven remaining, and so forth. One solution is simply to
% multiply the probabilities of "success" for each digit:
fprintf('\n\n %s\n\n','Output 4.12.12')
fprintf('Solution left to the student.\n\n');
fprintf('Your answer should be:\n');
fprintf('Probability_1 = \n');
fprintf(' 9.366567084168850e-04');
% Problem 4.12.13
%
% In Section 3.6 (Code 3.6.9), we noted that each value of a logarithmic
% series, after the first one, is a constant multiple of the prior value.
% Verify that this is the case (i.e., show the ratio between each element
% and the next) for logseries1 = logspace(1,2,5), using shorthand notation
% for matrix indices (i.e., by writing one MATLAB statement).
fprintf('\n\n %s\n\n','Output 4.12.13')
logseries1 = logspace(1,2,5);
SeriesRatios = logseries1(2:end)./logseries1(1:end-1)
commandwindow
Output 4.12.1
Second_Time_Group_Corrected =
71 76 82 82 95
Output 4.12.2
Solution left to the student.
Output 4.12.3
Treatments =
7 2 8 5 6 4 1 3
5 4 8 2 6 1 7 3
7 5 8 3 4 6 2 1
7 1 2 5 8 4 3 6
Treatments =
4 1 6 5 7 8 2 3
6 5 2 7 4 3 1 8
3 5 1 6 2 7 4 8
3 4 7 5 2 8 6 1
Output 4.12.4
TotalScore =
35.7167
Output 4.12.5
Solution left to the student.
Output 4.12.6
Sum_C3 =
15
Sum_Main_Diag =
15
Sum_Sec_Diag =
15
Output 4.12.7
Solution left to the student.
Output 4.12.8
ColMeans =
Columns 1 through 7
487.5700 496.7500 489.5400 497.6500 508.6600 495.0500 487.1000
Columns 8 through 10
480.9500 502.2000 518.5500
GrandMean =
496.4020
ColStds =
Columns 1 through 7
107.2484 91.1866 98.7010 93.9349 92.4733 95.9993 97.3658
Columns 8 through 10
94.8484 100.7596 109.0598
MeanStd =
98.1577
Output 4.12.9
r12 =
0.5282
r13 =
-8.3286e-04
r23 =
0.4518
Output 4.12.10
Solution left to the student.
Output 4.12.11
SumRowsAinaColumn =
20 20 12
SumRowsAinaRow_1 =
20
20
12
SumRowsAinaRow_2 =
20
20
12
SumAllofA_1 =
52
SumAllofA_2 =
52
Output 4.12.12
Your answer should be:
Probability_1 =
9.366567084168850e-04
Output 4.12.13
SeriesRatios =
1.7783 1.7783 1.7783 1.7783