Programming Languages Matlab 3101 - Class 3
3/26/08, Instructor: Blake Shaw
Contents
Short class because of Quiz
Review
cells, strings, avoiding loops, creating indexes
s = 'hello' x = double(s) char(x + 1) strfind('hello my name is blake', 'name') A = cell(5, 1); A{1} = 'this is a string'; A{2} = rand(5, 5); figure(1); cellplot(A);
s =
hello
x =
104 101 108 108 111
ans =
ifmmp
ans =
10
a = round(10*rand(10, 1)); b = round(10*rand(10, 10));
a circshift(a, 2) b
a =
9
1
10
6
8
6
6
3
1
7
ans =
1
7
9
1
10
6
8
6
6
3
b =
8 5 5 5 7 7 5 9 3 7
8 10 2 1 1 9 8 0 10 6
5 10 7 0 5 9 9 10 2 2
4 1 6 1 10 9 6 2 5 6
5 9 8 2 3 7 9 4 4 2
3 0 1 5 5 6 5 4 5 3
2 7 4 6 8 4 3 8 0 6
6 7 2 5 3 1 1 5 10 8
0 1 6 6 7 3 2 6 1 0
7 8 1 3 9 5 3 7 5 4
sqrt(sum((b - repmat(a, 1, 10)).^2))
ans =
Columns 1 through 6
11.0905 13.3041 10.8167 14.9332 10.7238 9.7468
Columns 7 through 10
9.8995 8.3666 16.9706 13.1529
A = rand(10, 10); A A(A > 0.7) = 0; A [i, j] = find(A > 0.3)
A =
Columns 1 through 6
0.7995 0.2917 0.4413 0.0223 0.2857 0.2740
0.1596 0.7565 0.4707 0.1483 0.7895 0.5873
0.3124 0.1037 0.8814 0.4757 0.2054 0.2684
0.6311 0.2274 0.6451 0.8780 0.4298 0.7843
0.5910 0.4879 0.1462 0.8632 0.6288 0.1486
0.0545 0.8733 0.2124 0.9961 0.5593 0.7733
0.8695 0.5791 0.1260 0.7573 0.2463 0.5199
0.7280 0.4213 0.5361 0.8858 0.6565 0.5867
0.0166 0.8133 0.8399 0.3687 0.1323 0.5190
0.7441 0.6953 0.2399 0.7160 0.5134 0.1406
Columns 7 through 10
0.3159 0.8659 0.4579 0.8151
0.8613 0.2196 0.6478 0.4857
0.4334 0.3012 0.9789 0.1162
0.0595 0.5871 0.4214 0.1434
0.8859 0.9020 0.9758 0.7847
0.2560 0.5237 0.5186 0.2689
0.2876 0.6688 0.5429 0.5568
0.2239 0.6769 0.3791 0.1357
0.5912 0.9529 0.8492 0.4245
0.5643 0.6239 0.5456 0.0576
A =
Columns 1 through 6
0 0.2917 0.4413 0.0223 0.2857 0.2740
0.1596 0 0.4707 0.1483 0 0.5873
0.3124 0.1037 0 0.4757 0.2054 0.2684
0.6311 0.2274 0.6451 0 0.4298 0
0.5910 0.4879 0.1462 0 0.6288 0.1486
0.0545 0 0.2124 0 0.5593 0
0 0.5791 0.1260 0 0.2463 0.5199
0 0.4213 0.5361 0 0.6565 0.5867
0.0166 0 0 0.3687 0.1323 0.5190
0 0.6953 0.2399 0 0.5134 0.1406
Columns 7 through 10
0.3159 0 0.4579 0
0 0.2196 0.6478 0.4857
0.4334 0.3012 0 0.1162
0.0595 0.5871 0.4214 0.1434
0 0 0 0
0.2560 0.5237 0.5186 0.2689
0.2876 0.6688 0.5429 0.5568
0.2239 0.6769 0.3791 0.1357
0.5912 0 0 0.4245
0.5643 0.6239 0.5456 0.0576
i =
3
4
5
5
7
8
10
1
2
4
8
3
9
4
5
6
8
10
2
7
8
9
1
3
9
10
3
4
6
7
8
10
1
2
4
6
7
8
10
2
7
9
j =
1
1
1
2
2
2
2
3
3
3
3
4
4
5
5
5
5
5
6
6
6
6
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
3:2:54 linspace(-10, 10, 56) logspace(-1, 1, 10)
ans =
Columns 1 through 11
3 5 7 9 11 13 15 17 19 21 23
Columns 12 through 22
25 27 29 31 33 35 37 39 41 43 45
Columns 23 through 26
47 49 51 53
ans =
Columns 1 through 6
-10.0000 -9.6364 -9.2727 -8.9091 -8.5455 -8.1818
Columns 7 through 12
-7.8182 -7.4545 -7.0909 -6.7273 -6.3636 -6.0000
Columns 13 through 18
-5.6364 -5.2727 -4.9091 -4.5455 -4.1818 -3.8182
Columns 19 through 24
-3.4545 -3.0909 -2.7273 -2.3636 -2.0000 -1.6364
Columns 25 through 30
-1.2727 -0.9091 -0.5455 -0.1818 0.1818 0.5455
Columns 31 through 36
0.9091 1.2727 1.6364 2.0000 2.3636 2.7273
Columns 37 through 42
3.0909 3.4545 3.8182 4.1818 4.5455 4.9091
Columns 43 through 48
5.2727 5.6364 6.0000 6.3636 6.7273 7.0909
Columns 49 through 54
7.4545 7.8182 8.1818 8.5455 8.9091 9.2727
Columns 55 through 56
9.6364 10.0000
ans =
Columns 1 through 6
0.1000 0.1668 0.2783 0.4642 0.7743 1.2915
Columns 7 through 10
2.1544 3.5938 5.9948 10.0000
Figures
figure, clf, gcf, hold, savesas
figure(1); plot(sin(-2*pi:0.1:2*pi)); figure(2); plot(cos(-2*pi:0.1:2*pi)); gcf
ans =
2
figure(1); clf; hold on; plot(-2*pi:0.1:2*pi, sin(-2*pi:0.1:2*pi), 'r+'); plot(-2*pi:0.1:2*pi, cos(-2*pi:0.1:2*pi), '*'); title('Sin and Cosine'); ylabel('Magnitude'); xlabel('Phase'); hold off; saveas(gcf, 'myFirstFigure.png');
Simple animation
drawnow
figure(1); clf; for i=0:0.1:30 x = -2*pi:0.1:2*pi; x = x+i; plot(x, sin(x), 'r+'); drawnow; %saveas(gcf, sprintf('myFirstFigure%d.png', i)); end
Images
imagesc, importdata, imread, imwrite
figure(1); clf; X = rand(10, 10); imagesc(X); axis image; colormap('jet');
X = importdata('pine.jpg'); figure(2); clf; imagesc(X); axis image; Y = mean(X, 3); figure(3); clf; imagesc(Y); axis image; colormap('hot');
X = imread('pine.jpg');
Y = uint8(255); figure(3); saveas(gcf, 'pineHot.jpg'); imwrite(Y, 'pineHot2.png', 'png');
%% figure(1); clf; X = rand(10, 10); imagesc(X); axis image; colormap('jet');
for i=1:10 [x, y] = ginput(1) x = round(x); y = round(y);
X(y, x) = 0;
imagesc(X); axis image;
colormap('jet');
end%% User input % ginput, input
x = input('What is the temperature today? ');
disp(sprintf('The temp is %d', x));
%%
s = input('How are you doing today? ', 's');
s
Colormaps and different kinds of images
colormap
Convolution
conv2, xcorr2