Introduction to MATLAB: Vectors, Strings, and Formatting
170 likes | 280 Vues
Learn how to work with character vectors, numeric vectors, and string formatting in MATLAB. Convert data types, format strings, take user inputs, and utilize boolean expressions and conditionals.
Introduction to MATLAB: Vectors, Strings, and Formatting
E N D
Presentation Transcript
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