Current idea is largely uploadable or cut and pastable scripts. Pain to get out and back in, so maybe best to run, then take questions, ad lib, free associate.
Illustrate command window, help, function list icon, function completion, some calculator-like examples. Also maybe pwd, ls, cd /whatever (on windows??) cd ../ (does this work?)
Note also: Debugger and Profiler
why not just make their first script?
Start in command window, file:new:script
type or paste
N= 100;
xrange = linspace(0,2*pi,N);
yrange = linspace(0,25*pi,N);
lf_sine = sin(xrange);
hf_sine = sin(yrange);
figure
plot(lf_sine+ .2*hf_sine);
yrange = linspace(0,8*pi,N);
mf_sine = sin(yrange);
z= zeros(N,N);
for x = 1:N
for y = 1:N
z(x,y) = lf_sine(x)+.2*mf_sine(y);
end
end
figure
surf(xrange,yrange,z);
disp('done! Over to you...')
that's pretty advanced but maybe impressive... a lot to type. Could just do stuff like
disp('average of squares of integers from 1 to 5.');
total = 1^2+ 2^2+ 3^2+ 4^2+ 5^2;
avesq = total/5
disp('add up integers from 1 to 50.');
disp(sum(1:50)); %increments by 1 unless say otherwise
disp('another average of squares of integers from 1 to 5.');
avesq2= sum([1:5].^2) / 5 % using more built-in power
(CTRL-X) CTRL-S a useful thing: save!
Work thru the tabs and menus across top of editor...lots there, may not be worth all the detail but good to show 'em maybe
Back Arrow to Return
Demos 2: Data Types
%demo2.m
disp('logical');
true
false
pause
if false
100
else
-999
end
pause
disp('integers');
-32
x = 987497203398726723098306736098038072309
pause
disp('conversion: usually does The Right Thing')
1/2
isreal(1/2)
pause
disp('non-zero value converts to logical true');
if -1
100
else
-999
end
pause
disp('complex nos: solve quadratic equation x = x^2 -3x +5 =0');
x= -3 + sqrt(3*3-4*1*5)/(2*1); % quadratic formula
disp(x)
pause
disp('row and column vectors');
r1 = [1 2 3 4]
r2 = [1.5, 2.5, 3.4, 444.0]
c1 = [3; 2; 1.01]
arr = [
1 2 3
4 5 6
7 8 9]
arr2 = [9 8 7 10; 6 5 4 11; 3 2 1 12]
pause
randarr = rand(2)
weirdI= eye(2,3)
pause
disp('strings');
first='Pig';
second='-headed';
concatenation = [first second]
findstr('gattacacaggattacccaggaggattaaac','tacc')
strrep('blihblihblih','ih','ah,')
pause
%end demo2.m
Back Arrow to Return
Demos 3: Variables and Operations
% demo3.m
pause
disp('variables and operations');
clear
x
x = 1
1x = 49
IH8U! = -999
pause
num = 6 %assignment
num = num+7; %re-assignment and access
num+8; %no assignment
pause
5+6
100^3
64/2/2/2
disp('etc etc');
%end demo3.m
% demo4.m pause % what gets printed? A = 5; B = A; B A = -99; B % X = Y is "copy the value of Y into X" not "give a value 2 names" Descriptive_Variable = 2*pi*Radius neg_sqrt_x= -3 - sqrt(3*3-4*1*5)/(2*1) % quadratic formula my_var = 4* 6^3 + x / ... (3* cos(.5)) % end demo4
% demo5.m
pause
disp('/,\');
10/2
10\2
2/10
2\10
pause
disp('precedence');
2-3-4
1+2*3
3/4*2
2^2 + 10 / 7
disp('and so on...use parens!');
pause
rem(32,6)*gcd(60,12)/sqrt(sin(abs(-pi/2)))
pause
disp('klik the function list icon!');
pause
disp('try the function( completion facility');
disp('on sqrt, linspace, rand);
% end demo5.m
Back Arrow to Return
Demos 6: Functions on variables, constants
% demo6.m
pause
clear
x1 = 1;
x2 = 2;
arr = [2 4 6 8];
who;
who x*
pause
whos;
pause
clear arr;
who;
pause
isvector(5);
arr = [2 4 6 8];
isvector(arr);
isreal(pi)
isempty(arr)
iskeyword('sin')
iskeyword('if')
isnan(0/0)
isinf(pi/0)
pause
pi
eps
pause
datevec= clock
pause
disp('note how number formatting makes for bulky vector display');
datevec = fix(clock)
date
pause
% end demo6.m
% demo7.m
x = [-200, -129, -128, -100, -50, -1,0,3, 60, 120, 127, 128, 200]
y = int8(x)
pause
intmin('int16')
intmax('int16')
intmin('int32')
intmax('int32')
intmin('int64')
intmax('int64')
realmin('double');
realmax('double');
pause
true
false
x = [1,2,3]
x(1.0)
x(2.1)
x(false)
disp('wtf1?!')
pause
x(0)
disp('wtf2?!')
pause
x(true)
x(true+ true)
disp('wtf3?!')
pause
if (-1)
5
else
-99
end
% end demo7.m
% demo8.m x = [1,2,3] y = [1 2; 3, 4; 5 6] z = [ 1 2 3 4; 5 6 7 8] ztranspose = z' pause v = 1:5 w = 10:-2:-4 u = linspace(0,pi,10) utranspose = u' pause zero33 = zeros(3) zero14 = zeros(1,4) zerolikez=zeros(size(z)) I44 =eye(4) Iwtf = eye(2,4) % end demo8.m
Back Arrow to Return
Demos 9: Fun with Matrices
% demo9.m x = [1,2,3,-4] y = [5 6 7 8] concatxy = [x y] sqrtx = sqrt(x) pause xplusy = x + y z = [1 2;3 4] rotz = rot90(z) ztranspose = z' x = x rotxtwice = rot90(x,2) y = y y(7) = 3 % end demo9.m
% demo10.m x = linspace(1,10,10) x3 = x(3) x(2) = -9 x(1) = x(2)+ x(3) x(4) = log(23)*pi*x(8) pause x = linspace(2,20,10) xvecindex= x([5 4 3 2 1]) pause x = [1:4;2:5] x(:,1) x(2,:) x(:,2:3) pause null = [] length(null) y =x y(:,1) = [] x = linspace(2,20,10) x(1:2:9) = [] pause y = [1 2 3; 4 5 6; 7 8 9] y(1:2,[1,3]) = [20 21; 22 23] y(1:2,1:2) = -99 pause x1 =x(1) x0 = x(0) % kee-rash! % end demo10.m
% demo11.m x22 = zeros(2) size(x22) pause x41= zeros(4,1) size(x41) pause x234 = zeros(2,3,4) size(x234) pause x = [1 2 3 4; 5 6 7 8; -1 -2 -3 -4] xends = x(2:end, end) y = size(x) [r,c] = size(x) % end demo11.m
% demo12.m
disp('uniform')
rand2 = rand(2)
rand2 = rand(2)
pause
disp('uniform ints')
randi2 = randi(10,2,2)
randi2 = randi(10,2,2)
pause
disp('normal (Gaussian), mean=0 var=1')
randn(2)
disp('normal (Gaussian), mean=10 var=2')
10 + 2*randn(2)
pause
disp('try help random!')
% end demo12.m
Back Arrow to Return