170 likes | 265 Views
Introduction To Matlab Class 2. Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”. Character Vectors And Numeric Vectors. 'hello world' is referred to as a character string or a character vector
E N D
Introduction To MatlabClass 2 Instructors: Hristiyan (Chris) Kourtev and Xiaotao Su, PhD Double click the matlab icon When prompted click “Skip”
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
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
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 pointm = 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”
Formatting strings with sprintf • Flags:- left justify; default is right0 left pads the number with zeroes if padding specified • Width: just a number • Precision: just a number • Examplessprintf('%01.2f', 12.4); %outputs 12.40sprintf('%010.2f', 12.4); %outputs 0000012.40sprintf('%.3e', 362525200); %outputs 3.625e+8 • For further reference go to:http://php.net/manual/en/function.sprintf.phphttp://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
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
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(num1-num2)]);
boolean expressions • Boolean expressions either return1 for trueor 0 for false • Possible operators:
Note: Put operations inside parenthesis so they are preformed first. • 1==1 • (1 + 1)==2 • (5 + 5) < 10 • (5 + 5) <=10 • (1 == 1) & (2==3) • (1 == 1) | (2==3) • 5 + (5 < 10)
Conditionals (if statements) if(Boolean Expression) do something end you can also do this: if(boolean expression) do something else do something else end or this: if(boolean expression) do something elseif(boolean expr2) do something else end
Back to math.m if ( (round(num1)==num1) & (round(num2)==num2) ) disp('num1 and num2 are integers') end
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
Task 1 • Have math.m tell me which number is larger then the other “the biggest number is …”
Tic and toc • tic starts a timer • toc tells you the number of seconds since when you ran toc
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
While program tic loops = 0; while(toc<5) loops = loops+1; disp(['number of loops = ', num2str(loops)]); disp(['number of seconds = ', num2str(toc)]); end
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