Introduction To Matlab Class 2 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip” Optional Presentation Title Character Vectors And Numeric Vectors • 'hello world' is referred to as a character string or a character vector • [35, 26.3, 11, 4] is a numeric vector • These are the two main data types in matlab h e l l o w o r (1) (2) (3) (4) (5) (6) (7) (8) (9) Unit Name 35 26.3 11 4 (1) (2) (3) (4) l d (10) (11) Optional Presentation Title Character Vectors (aka Strings) And Numeric Vectors • How to convert between these two data types? What if I have a string, '39.5' and I want to add to it? • num2str & str2num • str2num('39.5') + 5 • ['hello w', 'orld'] • a = [3, 9]; • b = [12.6, 8]; • [a, b] • c = ['1', num2str(39.5)] • str2num(c) + 200 Unit Name Optional Presentation Title Formatting strings with sprintf • result = sprintf(format_string, input1, input2 …) • Format string: [flags][width][.precision][length] specifier • Common Specifiers: %c character %s string %d integer %e or %E scientific notation %f floating point m = 44.5; k = ‘hello world’ res = sprintf(‘%s, it is %d degrees outside’, k, m); res will be “hello world, it is 44.5 degrees outside” Unit Name Optional Presentation Title Formatting strings with sprintf • Flags: left justify; default is right 0 left pads the number with zeroes if padding specified • Width: just a number • Precision: just a number • Examples sprintf('%01.2f', 12.4); %outputs 12.40 sprintf('%010.2f', 12.4); %outputs 0000012.40 sprintf('%.3e', 362525200); %outputs 3.625e+8 • For further reference go to: http://php.net/manual/en/function.sprintf.php http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ Unit Name Optional Presentation Title Taking inputs • Create a new program called math.m % math.m % % Carries out a series of calculations on two % numbers % % written by Your Name July 2010 Unit Name Optional Presentation Title clear all; %take inputs num1=input('what is the first number?'); num2=input('what is the second number?'); %show calculations disp([num2str(num1), '+', num2str(num2), '=', num2str(num1+num2)]); disp([num2str(num1), '-', num2str(num2), '=', num2str(num1num2)]); Unit Name Optional Presentation Title boolean expressions • Boolean expressions either return 1 for true or 0 for false • Possible operators: == > >= equals greater than greater less than greater and than or than or equal to equal to Unit Name < <= & | or Optional Presentation Title • • • • • • • 1==1 (1 + 1)==2 (5 + 5) < 10 (5 + 5) <=10 (1 == 1) & (2==3) (1 == 1) | (2==3) 5 + (5 < 10) Unit Name Note: Put operations inside parenthesis so they are preformed first. Optional Presentation Title Conditionals (if statements) if(Boolean Expression) do something end you can also do this: if(boolean expression) do something else do something else end Unit Name or this: if(boolean expression) do something elseif(boolean expr2) do something else end Optional Presentation Title Back to math.m if ( (round(num1)==num1) & (round(num2)==num2) ) disp('num1 and num2 are integers') end Unit Name Optional Presentation Title if ( (round(num1)==num1) & (round(num2)==num2) ) disp('num1 and num2 are integers') elseif(round(num1)==num1) disp('only num1 is an integer') elseif(round(num2)==num2) disp('only num2 is an integer') else disp('neither number is an integer') end Unit Name Optional Presentation Title Task 1 • Have math.m tell me which number is larger then the other “the biggest number is …” == > >= equals greater than greater less than greater and than or than or equal to equal to Unit Name < <= & | or Optional Presentation Title Tic and toc • tic starts a timer • toc tells you the number of seconds since when you ran toc Unit Name Optional Presentation Title While loop • while is a type of loop that runs while a condition is true while(boolean statement) %do something many times end %you would stop repeating the loop when the %boolean statement is false OR if you use %break Unit Name Optional Presentation Title While program tic loops = 0; while(toc<5) loops = loops+1; disp(['number of loops = ', num2str(loops)]); disp(['number of seconds = ', num2str(toc)]); end Unit Name Optional Presentation Title While program stopping after 10 loops tic loops = 0; while(toc<5) loops = loops+1; disp(['number of loops = ', num2str(loops)]); disp(['number of seconds = ', num2str(toc)]); if(loops>=10) break; end end Unit Name