Mühendislik Uygulamaları İçin MATLAB
21 Ekim 2015
Reaksiyon Mühendisliği Soru Çözümü (Fogler, P5-4)
10 Kasım 2015
// declare a double precision variable
// then assign a value

double a;
a = 5.0;

// repeat which assigns values to
// array elements

for(i=1; i<=10; i++)
A[i] = i;

// repeat which prints a series of
// values

for(i=0; i<=10; i += 2)
printf("%i \n", i);

// initialize identity matrix

enum(N=100);
double B[N];
for(r=0;r<N;r++)
for(c=0;c<N;c++)
B[r][c] = 0.0;
for(r=0;r<N;r++)
B[r][r] = 1.0;

// declare and initialize an array

double C[3] = {1,2,3};

// declare and initialize an array

double C[4] = {2,4,6,8};

// print an array element on screen

printf("%g \n", C[2]);

// declare and initialize an array
// with fixed interval between values

double C[4] = {2,4,6,8};
// declare and initialize a 2D array

enum{Rows=3, Cols=3};
double D[Rows][Cols] = {{1,2,3},
{4,5,6},
{7,8,9}};

// print element of 2D array

printf("%g \n", D[2][2]);

// print selected sub array of 2D array

for(r=1; r<=2; r++)
printf("%g \n", D[r][1]);

// print all rows of column 1 of 2D
// array

for(r=1; r<Rows; r++)
printf("%g \n", D[r][1]);

// logical expression

double a = 1;
double b = 2;
if (a == 1 || b == 3)
printf("a = 1 or b = 3 \n");

// logical expresssion

if a == 1 && b != 3 {
printf("a=1 and b not 3 \n");
printf("OK? \n");
}

// if structure

if a != 1
fprintf('a is not 1 \n');
else if b != 3
fprintf('b is not 3 \n');
else
fprintf('huh? \n');

// switch structure

switch a+b {
case 1:
printf("a+b = 1 \n");
break;
case 2:
printf("a+b = 2 \n");
break;
case 3:
printf("a+b = 3 \n");
break;
default:
printf("a+b > 3 \n");
}

// program which calls a function

#include
% variables defined outside a
% program unit are global
y = 1;
z = 2;

main(){
int b;

b = myfunc(3);

printf("%i \n", b);
}

// function definition can be in
// same file or separate file

int myfunc(int x){
int a;
a = x*y*z;
return(a);
}
// matrix multiplication

// C = A*B

// where A is I rows by J columns
// B is J rows by K columns
// and C is I rows by K columns

// initialize matrix C so can
// accumulate sum in each C[i][k]

for(i=0; i<I; i++)
for(k=0; k<K; k++)
C[i][k] = 0;

// matrix multiplication, C = AB
for(k=0; k<K; k++)
for(i=0; i<I; i++)
for(j=0; j<J; j++)
C[i][k] += A[i][j] * B[j][k];
% variables are not declared and are
% double precision by default
 
a = 5.0;
% i = start:increment:end
% where increment = 1 is default
 
for i=1:10
A(i) = i;
end
 
 
 
 
for i=0:2:10
fprintf(' %i \n', i)
end
 
% MATLAB has functions for
% common array initializations
 
B = eye(100);
 
 
 
C = [1 2 3]; % or C = [1, 2, 3]
% array name = [start:increment:end];
 
C = [2:2:8];
 
 
C(2) % no ending ; displays value
 
 
 
C = linspace(2,8,4)
 
% third param is optional and = # points
% between and including 1st two points
% if third param left off, default
% is 100 points
 
% these three examples accomplish the
% same thing
 
D = [1 2 3; 4 5 6; 7 8 9];
D = [1:3; 4:6; 7:9];
D = [1 2 3
4 5 6
7 8 9];
 
 
 
D(2,2) % row 2, column 2
 
 
D(1:2,1) % rows 1 to 2 of column 1
 
 
 
D(:,1) % all rows of column 1
 
 
a = 1;
b = 2;
if a == 1 || b == 3
fprintf('a = 2 or b = 3 \n');
end
 
 
 
if a == 1 && b ~= 3
fprintf('a=1 and b not 3 \n');
fprintf('OK?');
end
 
 
if a ~= 1
fprintf('a is not 1 \n')
elseif b ~= 3
fprintf('b is not 3 \n')
else
fprintf('huh? \n')
end
 
 
 
switch a+b
case 1
fprintf('a+b = 1 \n')
case 2
fprintf('a+b = 2 \n')
case 3
fprintf('a+b = 3 \n')
otherwise
fprintf('a+b > 3 \n')
end
 
% program and function definition must
% be in separate files and function file
% must have same name as function
 
global y z
% declare global variables before
% first use
y = 1;
z = 2;
 
 
 
 
b = myfunc(3)
 
% function definition of myfunc
% must be in a separate file named
% myfunc.m (i.e., functionName.m)
 
 
LISTING OF FILE myfunc.m
 
function a = myfunc(x)
 
% function keyword, return variable
%               = function name (inputs)
%
% 1st continuous group of
% comments in a function are
% displayed when you enter 'help'
% and name of function in the command
% window
 
global y z
% declare global variables used
% in this file
 
a = x*y*z;
% return last value of return
% variable in file
% MATLAB functions can return an
% array
 
 
 
C = A*B;

Bir Yorum Yazın