1 4.1 BASICS. 2 Setting Up Matrices Assignment a matrix A = [ {row 1}; {row 2}; ……; {row m} ] Ex:To set up a 4x4 matrix A,like A = [1 1 1 1;1 2 3 4;1.

Post on 05-Jan-2016

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

1

4.1 BASICS

2

Setting Up Matrices Assignment a matrix

A = [ {row 1}; {row 2}; ……; {row m} ]

Ex: To set up a 4x4 matrix A ,like

A = [1 1 1 1;1 2 3 4;1 3 6 10;1 4 10 20]

It’s also legal to make input ‘look like’ output.A = [1 1 1 1

1 2 3 41 3 6 101 4 10 20 ]

201041

10631

4321

1111

3

Simple Output If you enter A = [1 2;3 4] without a

semicolon ,then the system responds with

If you already assignment A wit a semicolon, but now you want to display it .You could only type A to display.

43

21A

4

Types and Dimension Complex syntax

c = complex(a,b), it means c = a + bi

Dimension is handled automatically in MATLAB.Suppose you set B = [1 2 3; 4 5 6 ], and then set B = [1 0; 0 1].The system ‘knows enough’ to recognize that B has changed from 2-by-3 matrix to a 2-by-2 matrix.

5

Subscripts The subscripts in MATLAB must be positive. If you type A(1.2 , 3.5) = 10, you will get a error

message . ?? Subscript indices must either be real positive integers or logicals

6

Vectors and Scalars Vector and scalar are ‘special matrices’.

The commands, x = [ 1 ; 2 ; 3 ] ; or x = [1 2 3]’ ; establish x as a column vector while

Assignment an 1-by-1 matrix with c = [3], and it equals to c = 3 .

3

2

1

x

7

Size and LengthIf we declare A = [ 1 2 ; 3 4 ; 5 6 ], v = [7 8 9 10]

Size & Length syntaxsize(A)

ans = [3 2]length(v)

ans = 4

8

Continuation Sometimes it is not possible to put an entire

MATLAB instruction on a single line. We can break the instruction in a ‘natural’ place.

There are some ways to express a instruction, and they are the same.

A = [1 2 3; 4 5 6 ;....... 7 8 9]

A = [1 2 3; 4 5 6 ; 7 8 9]

A = [1 2 3; 4 5 6 ; 7 8 9]

9

Variable Names Variable names in MATLAB must consist of

nineteen or fewer characters.

The name must begin with a letter.Any letter, number, underscore may follow, e.g., sym_part1.

Upper and lower cases are distinguished in MATLAB.

10

Addition, Multiplication, Exponentiation

If A and B are matrices the C = A+B sets C to be the sum while C = A*B is the product.

To raise a square A to power r enterC = A^r

C = A^(-1) assigns the inverse of A to C.

f = c1Ab + c2A2b + c3A3b

f = A*(A*(c(3)*A*b+c(2)*b)c(1)*b)

f = ( c(3)*A^3+ c(2)*A^2+c(1)*A )*b

11

Transpose The conjugate transpose of a matrix can be

obtained using a single quote:Set B = At

B = A’

12

The “Colon Method” for Setting Up Vectors

Colons can be used to prescribe vectors whose components differ by a fixed increment.

v = 1:3 v = [1 2 3] v = 3:-1:0 v = [3 2 1 0] v = 1:2:10 v = [1 3 5 7 9]

13

Logarithmically Spaced Vectors

LOGSPACElogspace(a,b,n) generates n points between decades 10^a and 10^b.

If w = logspace(d1,d2,n), thenw(i) = 10 ^ [ d1 +(i-1)(d2-d1)/(n-1) ]

w = logspace(0,3,4) w = [1 10 100 1000]

14

Generation of Special Matrices

MATLAB has a number of build-in functions that can be used to generate frequently occurring matrices:

A = eye(m , n ) A m-by-n, ones on diagonal, zeros

elsewhere.A = zeros(m , n )

A m-by-n, zeros everywhere.A = ones(m , n )

A m-by-n, ones everywhere.

15

Random Matrices It’s possible to generate matrices and vectors

of random numbers:

A = rand(m , n ) A m-by-n, random element between 0

and 1.

16

Complex Matrices If A and B are matrices with the same

dimension and i2=-1, then the complex matrix C = A+iB can be generated as follows:

C = A + sqrt(-1) * B ; or C = A + i * B ;

17

Pointwise Operations Element operations between two matrices of

the same size are also possible:

C = A.*B cij = aij * bij

C = A.\B cij = bij / aij

C = A./B cij = aij / bij

C = A.^B cij = aijbij

C = A.’ cij = aji

If we have a=[1 2], then type a.*[3 4]We get the answer = [1*3 2*4 ]= [3 8].

18

More On Input/Output I The format for printed output can be controlled

using the following commands:format short 5-digit fixed point

styleformat short e 5-digit floating point

styleformat long 15-digit fixed point

styleformat long e 15-digit floating

point styleformat hex hexadecimal

19

More On Input/Output II format hex hexadecimal

To represent a number into double precise floating point(with hexadecimal form).

Ex. To show 1 in format ‘ hex ’ in matlab1 = + 1.0 * 2^0

sign exponent+1023 mantissa

0011 1111 1111 0000 0000 0000 ..... 0000 3 f f 0 0 0 ..... 0

sign(1 bit)

exponent(11 bit)

mantissa(52 bit)

0 01111111111 000000000.....00+1023

20

Machine Precision At the start of MATLAB session, the variable eps

contains the effective machine precision,i.e.,the smallest floating point number such that if x = 1 + eps then x>1 .

eps = 2.220446049250313e-016

21

Flops This is an obsolete function.

It can estimate the count of the program.

For complex operands, addition and subtraction count as two flops while multiplications and divisions each count as six flops.

22

4.2 LOOPS AND CONDITIONALS

23

For-Loops Syntax

for {var} = {row vector of counter values}{statements}

end

Ex: for i = 1:3 x(i) = i;end

is equivalent to x = [1;2;3];

24

Relations Relation operators

== equals

~= not equals< less than<= less than or equal to> greater than>= greater than or equal to

Ex: A=[1 2;3 4]; B=[1 2;2 4];T = A==BThen, the output is T = 1 1

0 1

25

‘and’, ’or’, ’not’ And(&), or(|), not(~)

The operations are possible between 0-1 matrices of equal dimension.

If T1 = [1 1 ; 0 1] ,T2 = [1 0 ; 0 0]T=T1&T2, T= 1 0

0 0T=T1|T2, T= 1 1

0 1T=~T1, T= 0 0

1 0

26

‘if’ Constructions Syntax

if {relation} {statements}end

Ex:Set a upper triangular matrix that has 1’s on the diagonal and –1’s above the diagonal.for i = 1 : n for j = 1 : n

if i < j A(i,j) = -1; elseif i > j A(i,j) = 0; else A(i,j) = 1; end

end end

27

The ‘any’ and ‘all’ Functions Any

If any component of the vector is nonzero, it returns a “1”.

AllIf all the entries are nonzero, it returns a “1”.

a = [ 0 1 1; 0 0 1; 0 0 1]any(a) ans =[0 1 1]all(a) ans =[0 0 1]

28

While-Loops Syntax

while {relation} {statements}

end

Print a sequence{Ai} of random 2-by-2 with the property that Ai+1>Ai:

A = zeros(2)

B = rand(2,2)

while(B>A)

A=B

B=rand(2,2)

end

29

The ‘break’ Command Break

It can be used to terminate a loop.

Print all Fibonnaci number less than 1000:fib(1) = 1

fib(2) = 1

for j = 3:1000

z = fib(j-1) + fib(j-2)

if z >= 1000

break

end

fib(j) = z

end

30

4.3 WORKING WITH SUBMATRICES

31

Setting Up Block Matrices We can set up the block matrix as follows:

A=[A11 A12 ; A21 A22 ; A31 A32 ]

If we want to make a 6-by-6 matrix with random 2-by-2 block diagonal, like

A = rand(2,2)

for i = 2:3

[m,m] = size(A);

A = [ A zeros(m,2) ; zeros(2,m) rand(2,2) ]

end

lk0000

ji0000

00hg00

00fe00

0000dc

0000ba

32

The Empty Matrix The empty matrix [] is often useful for

initialization of certain matrix computations.B=[] B is empty

To set up a column-reversed version of above example:

B = []

for j = 6:-1:1

B = [ B A(:,j) ];

end

0000kl

0000ij

00gh00

00ef00

cd0000

ab0000

33

Designating Submatrices If A is m-by-n matrix and i,j,p,q are integers.

Then, B= A( i:j , p:q ) B=

B = A ( : , p:q ), the range ( : ) means from 1:n, if the dimension of matrix is n.

jqjp

iqip

aa

aa

34

Assignment to Submatrix

If A = , we can assign the column

3 to [3 3 3]’ by using A(:,3)=3 or A ([7 8 9])=[3 3 3].

Then A =

021

021

021

321

321

321

35

Kronecker Product The Kronecker product of two matrices A and B can

be calculated using the build-in function kron: C = kron(A,B) C = (aijB)

C = []; [m,n] = size(A); for j = 1:n ccol = []; for i = 1:m ccol = [ ccol ; A(i,j)*B ]; end

C = [C ccol] end If C = kron( [ 1 2 ] , [ 1 2 ; 3 4 ] ) then C = 1 2 2 4 3 4 6 8

36

Turning Matrices into Vectors and Vice Versa

If A is a m-by-n matrix and we want to set v is an mn-by-1 vector.

v = A(:)

Set a transpose of a 2-by-2 matrix A = [ 1 2 ; 3 4 ]x = A(:);

x( [2 3] ) = x( [3 2] );

A(:) = x;

37

4.4 BUILD-IN FUNCTIONS

38

‘abs’, ‘real’, ‘imag’, ‘conj’ B = abs(A) B = ( |aij| )

B = real(A) B = ( real(aij) )

B = imag(A) B = ( imag(aij) )

B = conj(A) B = real(A)-i*imag(A), i2=-1

If A=[1-2i 2-i;3-4i 4-3i]; conj(A);Then, ans = 1+2i 2+i

3+4i 4+3i MATLAB’s build-in functions are in lower case,

unless user define.Otherwise, it’s will show ‘Capitalized internal function XXXX; Caps Lock may be on.’

39

Norms t = norm(A) t = || A ||2

t = norm(A,1) t = || A ||1

t = norm(A,’inf’) t = || A ||t = norm(A,'fro') t = || A ||F

If A = [1 2 3 4]norm(A)

ans = 5.47722557505166sqrt(1+4+9+16)ans = 5.47722557505166

40

Largest and Smallest Entries If v = max(A) v = [ max(A(:,1)), … , max(A(:,n)) ]

[v,i] = max(A)v = [ max(A(:,1)), … , max(A(:,n)) ]i = [the row of the max value

in]

A =[ 1 2 86 9 4

7 5 3];and [v,i]=max(A);

v= 7 9 8i = 3 2 1

41

Sums and Products t = sum(A) t =

t = prod(A) t =

A =[ 1 2 9 6 9 4

7 5 3]sum(A)ans =14 16 15prod(A)ans =42 90 96

) )(:,, .... ),(:, ( nA1A

))(:, , .... ),(:, ( nA1A

42

‘sort’ and ’find’ I Sorts each column of A in ascending order by using

sort(A)

[v,i] = sort(A), returns in sorted v and an integer vector i which indicate the permutation of new from old matrix.

A =[ 3 5 92 6 81 4 7]

[B,i]=sort(A); B =[1 4 7 2 5 8 3 6 9]

i =[ 3 3 3 2 1 2 1 2 1]

43

‘sort’ and ’find’ II The find function can be used to locate nonzero

entries.

A =[1 0 2 3 0]find(A)

ans =[1 3 4]find(A == 0)

ans =[2 5]

44

Rounding, Remainders, and Signs I

There are several conversion-to-integer routines:

round(x) round x to nearest integerfix(x) round x to zerofloor(x) round x to -ceil(x) round x to +

A = [ 1.1 -2.2 -0.9 3.8 ]round(A) ans=[1 - 2 -1 4]fix(A) ans=[1 -2 0 3]floor(A) ans=[1 -3 -1 3]ceil(A) ans=[2 -2 0 4]

45

Rounding, Remainders, and Signs II

t = sign(x) t =

t = rem(x,y) t = x-y*fix(x/y)If y = 0, rem(x,0) is NaN. And x and y must be the same dimension.

rem equals mod(x,y) if x and y are the same sign.Otherwise , mod(x,y) = rem(x,y)+ya = mod(-7,4)a = 1a = rem(-7,4) a = -3

0 if x 1

0 if x0

0 if x1

46

Extracting Triangular and Diagonal Parts I

B = tril (A) bij=aij if i j, zero otherwise.B = triu (A) bij=aij if i j, zero otherwise.B = tril (A,k) bij=aij if i+k j, zero otherwise.

B = triu (A,k) bij=aij if i+k j, zero otherwise.

diag(v) puts v on the main diagonal.v=diag(A) return a vector v with A’s diagonal.

47

Extracting Triangular and Diagonal Parts II

T = toeplitz(c,r) is equivalent to

T = zeros(n);

for k = 1:n

j = n-k;

if k<n

T = T + diag( r(k+1)*ones(j,1) , k);

end

T = T + diag( c(k)*ones(j+1,1) , -k+1);

end

48

Extracting Triangular and Diagonal Parts III

Take c=[6 7 8 9 10];r=[1 2 3 4 5];n=5;

into above two function. We can show

T =[ 6 2 3 4 5 7 6 2 3 4 8 7 6 2 3 9 8 7 6 2 10 9 8 7 6]

49

‘rank’ If A is a m-by-n matrix, rank(A)= min{m,n}.

It Is also possible to base the rank decision on an arbitrary tolerance.If tol is a nonnegative scalar then

r = rank(A , tol)

A = [ 1 2 ; 3 4 ; 5 6 ]rank(A)=min{3,2}=2

A = [1 0.1 ; 3 0.2 ; 5 0.3 ]rank(A,1)=1

50

Condition cond(A) can be computed the 2-norm

condition (the ratio of the largest

singular value of X to the smallest) of a matrix A.

min/ 1

51

Determinant The determinant of a square matrix A can be

computed as follows:det(A)

A =[1 2;3 4];det(A)=1*4-2*3

=-2

52

Elementary Functions Trigonometric

sin() cos() tan()

Inverse trigonometricasin() acos() atan()

Exponentialexp() log() log10()

Hyperbolicsinh() cosh() tanh()

53

Functions of Matrices F = expm(A) F = eA

F = logm(A) A = eF

F = sqrtm(A) F2 = A

54

‘roots’ and ‘poly’ If A is an n-by-n matrix then

c = poly(A) det( ) =

The roots are returned in a column vector by root(A), if we want to get the root.

If A=[2 -1;1 4];r=poly(A); r=[1 –6 9]a=roots(r); a=[3 -3]

AI n

1

1n

2n1n cccc

55

Fourier Transforms y = fft(x) y = Fourier transform of x

y = ifft(x) y = inverse Fourier transform of x

B = fft2(x) B = 2DFourier transform of xB = ifft2(x) B = inverse 2DFourier transform of x

56

4.5 FUNCTIONS

57

An Example I The first line in the function is of the form

function {output variable} = {function name} ({arguments})

Comments begin with the ’%’ sign.All functions often begins with ‘how-to-use’ comments.They will be displayed, as we input the help with the function name.

58

An Example II Write a function return a unit 2-norm vector

in the direction of Ax

function y = proAx(A,x)%% Compute K = [ v , Av , A^2 v , . . . , A^(p-1) v ] D,% where A is n-by-n, v is n-by-1, and D is diagonal% chosen so that the column of K have unit 2-norm.%y = A*x;c = norm(y);if c ~= 0

y = y/c;else

y = [ 1 ; zero( length( x-1,1 ) ) ];disp('Matrix-vector product is zero. First

column..of I returned.')end

59

Functions can call other Functions

Compute K = [v,Av,A^2v,…,A^(p-1)v]D,where A is n-by-n,v is n-by-1,and D is diagonal.

function K = kry(A,v,p) [ m,n ] = size(A); nv = length(v) if m ~= n | n ~= nv disp('Dimension do not agree.') else K = v/norm(v) for j = 2:p-1 K = [ K prodAx(A,K(:,j-1) )]; end end return

60

Multiple Input and Output Arguments I

Computes nonnegative matrices P and N, where A(i,j) > EPS , implies P(i,j) = A(i.j) , N(i,j) = 0 A(i,j) < EPS , implies P(i,j) = 0 , N(i,j) = -A(i.j)

| A(i,j) | <= EPS , implies P(i,j) = N(i,j) = 0 

function [P N] = pn(A)E = EPS*ones(A);

P = A.*( A > E );

N = -A.*( -A > E );

end

61

Multiple Input and Output Arguments II

If one input argument(decided by nargin), tol = EPS.If one output argument (decided by nargout), P only is returned.

function [P N] = pn(A,tol)

if nargin == 1

tol = EPS;

end

E = tol*ones(A);

P = A.*( A > E );

if nargin == 2

N = -A.*( -A > E );

End

Statement Tolerance

Output

P = pn(A)[P,N]=pn(A)P = pn(A,tol)[P,N]=pn(A,tol)

epsepstoltol

Just PP and

NJust PP and

N

62

Passing Function Names It’s possible to pass the function name of another

function,but it requires some text processing with the eval function.

function F = afun(A,f)

[m,n] = size(A);

for j = 1:m

for i = 1:n

F(i,j) = eval([ f ,'(A(i,j))' ]);

end

end F(i,j) = eval([ f ,‘A(i,j)’ ]);

assign f(A(i,j)) to F(i,j). Ex: afun(A,'cos');

[0.54030230586814 -0.41614683654714 -0.98999249660045 -0.65364362086361]

63

Global Variables The values in all global variables can be

accessed whenever inside a function.

Like the common in Fortran, global should be used sparingly.

64

Recursion I Compute the 1-norm of an n-vector x function normL1 = f(x)

n = length(x);

if n == 1

normL1 = abs(x);

else

normL1 = f( x(1:n-1) ) + abs(x(n));

end

Ex: f([1 2 -3 4]) = 10

65

Recursion II Compute A*B with recursion method(Strassen

matrix), where A,B are square matrices.function C = strass(A,B,nmin)

[ n n ] = size(A); if n <= nmin % n small, get C conventionally C = A*B;

else m = n/2; u = 1:m; v = m+1:n; P1 = strass(A(u,u)+A(v,v), B(u,u)+B(v,v), nmin);

P2 = strass(A(v,u)+A(v,v), B(u,u), nmin); P3 = strass(A(u,u), B(u,v)-B(v,v), nmin);

P4 = strass(A(v,v), B(v,u)-B(u,u), nmin); P5 = strass(A(u,u)+A(u,v), B(v,v), nmin); P6 = strass(A(v,u)-A(u,u), B(u,u)+B(u,v), nmin); P7 = strass(A(u,v)-A(v,v), B(v,u)+B(v,v), nmin); C = [ P1+P4-P5+P7 P3+P5 ; P2+P4 P1+P3-P2+P5 ];end

66

4.6 FACTORIZATION

67

Solving Linear Systems It can be computed the solution to the multiple

tight-hand side linear system AX=B.X = A \ B

A less preferable way to solve AX = B isX = inv(A) * B

68

The LU Factorization The factorization A =LU, where U is upper

triangular and L is a row-permuted unit lower triangular matrix,can be computed as follows:

[ L , U ] = lu(A) Another less efficient method for solving AX =

b.[ L , U ] = lu(A)

y = L \ b;

x = U \ y;

69

The Cholesky Factorization It can be computed an upper triangular R

such that A =RHR, where A is an m-by-n Hermitian, positive definite matrix.

R = chol(A)

There is no build-in function for computing the factorization A = LDLH, where L is unit lower triangular and D is diagonal. How to do it?L = chol(A);d = diag(L);L=L';for k =1:n

L(:,k) = L(:,k)/d(k);endD = diag(d.*d);

70

QR Factorization Compute unitary Q(m-by-m) and upper

triangular R(m-by-n) such that A =QR.[Q , R] = qr(A)

Compute the minimizer of ||Ax - b||2.

[Q , R] = qr(A);

[m , n] = size(A);

b = Q'*b;

x = R(1:n,1:n)\b(1:n);

71

Householder and Givens Transformations

Compute a Householder matrix P such that Px is zero below the first component:

[P , R] = qr(x)

72

QR Factorization with Column Pivoting

Syntax[Q,R,P] = qr(A)

where Q is m-by-m unitary, p is n-by-n permutation, and upper triangular m-by-n matrix R.So, QTAP = R =

Compute the solution of Ax = b.[Q,R,P] = qr(A);

[m,n] = size(A);

y= R(1:m , 1:m) \Q'*b;

x= P* [y; zeros(n-m,1)];

00

RR 1211

73

Range and Null Space Compute an orthonormal basis for the range

space.Q = orth(A)

or[m,n]=size(A);[Q,R]=qr(A);Q=Q(:, 1:n);

A null space of a matrix AQ=null(A)

74

The Singular Value Decomposition I

If A is a m-by-n matrix ,we can compute unitary U(m-by-m), unitary V (n-by-n), and diagonal S(m-by-n):

[ U , S , V ] = svd(A)so, UHAV = S.

If m n then the ‘compact’ SVD in which U is m-by-n and S is n-by-n, use a two-argument version of svd:

[ U , S , V ] = svd(A, 0)

75

The Singular Value Decomposition II

A = [1 2 ;4 5;3 4];[ U , S , V ] = svd(A,0)[ U1 , S1 , V1 ] = svd(A,0)

U = [-0.26118 0.92755 -0.26726 -0.76072 -0.36822 -0.53452 -0.59420 0.06370 0.80178]S = [8.41440 0 0 0.444672 0 0 ]V = [-0.60452 -0.796587 -0.79658 0.60452]

U1 = [-0.26118 0.92755

-0.76072 -0.36822

-0.59420 0.06370]

S1 = [8.41440 0

0 0.444672]

V1 =[-0.60452 -0.796587

-0.79658 0.60452]

76

Pseudoinverse and Least Squares

If A is initialized then the pseudoinverse X can be found using pinv:

X = pinv(A)Then, multiple right-hand side least squares problem can be solved with either of the commands

x=A\B;or

X = pinv(A)*B;

77

The Hessenberg Decomposition

If A is a m-by-n matrix ,we can compute unitary Q(n-by-n), and upper Hessenberg H such that QHAQ = H.

H = hess(A)

A =[1 2 4;3 4 2;1 2 4];hess(A);

[1 -3.16227 3.162277 -3.16227 5.2 -1.6 0 -1.6 2.8 ]

78

The Schur Decomposition I Real SCHUR form

If A is real then Q is orthogonal and T = QTAQ is upper quasitriangular.

Imaginary SCHUR formIf the imaginary part of A is nonzero, then Q is unitary and T = QTAQ is upper triangular.

Syntax[Q,T] = schur(A);

It can be computed the complex Schur form from the real Schur form.[Q,T] = schur(A);[Q,T] = rsf2csf(Q,T);

79

The Schur Decomposition II If A=[7 -4 0

8 -5 0 6 -6 3 ];

T = schur(A);T= [3 13.2 6.18448

0 -1 -1.87408 0 0 3 ] A=[3 4;-2 -1];

[Q,T] = schur(A);[Q,T] = rsf2csf(Q,T);T=[ 1+2i -4.47213; 0 1-2i ]

80

The Eigenvector Decomposition

It can be compute a nonsingular X and diagonal D such that X-1AX = D is diagonal.

[X,D] = eig(A);

If A=[7 -4 0 8 -5 0 6 -6 3 ];

e = eig(A);e=[3 1 3]’

81

Generalized Eigenvalues A two-argument version of eig can be used to

solve the generalized eigenvalue problem Ax = Bx, where A and B are square and of the same dimension.

It can be compute a matrix X and a diagonal matrixD such that AX = BXD.

[X,D] = eig( A, B )

82

4.7 MISCELLANEOUS

83

IEEE Arithmetic In MATLAB, the result of a zero divide is a

special value called “inf”.Example, 1/0.

NaN means not a number.Example, 0/0.

Thus, x = inf and y = NaNa=x+z a = infa=1/x a = 0a=y*z a = NaNa=x/y a = NaNa=[x;y] a(1)=inf, a(2)=NaN

84

Timings We can execute the time which we run a

program.The function clock returns the current time in a row vector(year,month,day,hour,minute,and second).The function etime(t1,t2) returns the time in seconds between vectors t1 and t2.

for k =1:500n=k;A=rand(n);x=rand(n,1);t1=clock;y=fft(x);t2=clocktime=time+etime(t2,t1);end

85

Timed Displays A delay can be build into a MATLAB segment

with the pause statement.

Display the n-by-n magic square matrix on the screen for approximately n seconds for n=1:5.

for n=1:5

A=magic(n)

pause(n)

end

86

Getting Input It can be input a value during execution of a

MATLAB segment.

Write a function which displays magic square of chosen dimension by user. while(n>=1)

A=magic(n)

n=input('Enter dimension')

end

87

Converting Numbers to Strings

Num2str can be used to convert a number to its string format.

s = num2str(2) s = ‘2.0000’s = num2str(2) s = ‘-1.000E+2’s = num2str(2) s = ‘1.2345E+7’

top related