Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

SO SÁNH NGÔN NGỮ MATLAB VÀ C

I. Kiểu dữ liệu cơ bản


1. Toán tử 2 ngôi

Toán Độ ưu tiên (0
MATLAB C
tử là cao nhất)

a ^ b 0 Hàm mũ, a mũ b Toán tử XOR trên bit

a * b 1 Thực hiện phép nhân Thực hiện phép nhân

a / b 1 Thực hiện phép chia Thực hiện phép chia

a % b 1 Không hỗ trợ. Sử dụng hàm rem hoặc mod để thay thế Phép chia lấy dư

a + b 2 Thực hiện phép cộng Thực hiện phép cộng

a - b 2 Thực hiện phép trừ Thực hiện phép trừ

a >>
3 Không hỗ trợ. Sử dụng hàm bitshift Dịch a sang phải b bits.
b
a <<
3 Không hỗ trợ. Sử dụng hàm bitshift Dịch a sang trái b bits.
b

a > b 4 So sánh lớn hơn. So sánh lớn hơn.

a < b 4 So sánh nhỏ hơn. So sánh nhỏ hơn.

a >=
4 So sánh lớn hơn hoặc bằng. So sánh lớn hơn hoặc bằng.
b
a <=
4 So sánh nhỏ hơn hoặc bằng So sánh nhỏ hơn hoặc bằng
b
a ==
5 So sánh bằng So sánh bằng
b
a ~=
5 So sánh không bằng So sánh không bằng
b
a !=
5 Không hỗ trợ. Sử dụng a ~= b. So sánh không bằng
b
a <>
5 Không hỗ trợ. Sử dụng a ~= b. So sánh không bằng
b
Toán tử logic AND. Sử dụng hàm bitand để thực hiện • Bitwise AND
a & b 6
toán tử AND trên bit
Không hỗ trợ. Sử dụng hàm bitxor để thực hiện toán tử
a ^ b 7 Bitwise XOR
XOR trên bit
Toán tử logic OR. Sử dụng hàm bitor để thực hiện toán • Bitwise OR
a | b 8
tử OR trên bit
a &&
9 Toán tử logic AND. Logical AND.
b
a ||
10 Toán tử logic OR. Logical OR.
b

2. Toán tử 1 ngôi

Toán tử MATLAB C
~a Toán tử Logic NOT. Đối tử toán tử NOT trên bít (bitwise) sử dụng hàm bitcmp Toán tử bitwise NOT

!a Không hỗ trợ, sử dụng ~a để thay thế. Toán tử logic NOT

-a Số âm Số âm

a++ Không hỗ trợ Tăng một đơn vị. Tương đương a = a+1.

a-- Không hỗ trợ Giảm một đoen vị. Tương đương a = a-1.

3. Toán tử gán
Toán tử MATLAB C
a = b Phép gán thông thường Phép gán thông thường

a += b Không hỗ trợ, sử dụng a = a+b để thay thế. Tương đương a = a+b.

a -= b Không hỗ trợ, sử dụng a = a-b để thay thế. Tương đương a = a-b.

a *= b Không hỗ trợ, sử dụng a = a*b để thay thế. Tương đương a = a*b.

a /= b Không hỗ trợ, sử dụng a = a/b để thay thế. Tương đương a = a/b.

a &= b Không hỗ trợ, sử dụng a = bitand(a,b) để thay thế. Tương đương a = a&b (bitwise AND).

a ^= b Không hỗ trợ, sử dụng a = bitxor(a,b) để thay thế. Tương đương a = a^b (bitwise XOR)

a |= b Không hỗ trợ, sử dụng a = bitor(a,b) để thay thế. Tương đương a = a|b (bitwise OR)

II. Vector và Ma trận


1. Chỉ số và cách truy xuất

Nội dung Ngôn ngữ Matlab Ngôn ngữ C

Phần tử đầu tiên của vector V V(1) V[0]

Phần tử thứ I của vector V V(i) V[i-1]

Phần tử hàng 4 cột 5 của ma trận M M(4,5) M[3][4]

Phần tử hàng i cột j của ma trận M M(i,j) M[i-1][j-1]

2. Toán tử 2 ngôi
Toán tử Độ ưu tiên MATLAB C

a * b 1 Nhân 2 ma trận Áp dụng cho nhân từng phần tử

a .* b 1 Nhân từng phần tử với nhau Không hỗ trợ


Element-wise multiplication.
a / b 1 Chia phải ma trận Áp dụng cho chia từng phần tử

a ./ b 1 Chia phải từng phần tử của ma trận Không hỗ trợ

a \ b 1 Chia trái ma trận Không hỗ trợ

a .\ b 1 Chia trái từng phần tử của ma trận Không hỗ trợ

a + b 2 Thực hiện cộng Thực hiện cộng

a - b 2 Thực hiện trừ Thực hiện trừ

a == b 3 So sánh bằng So sánh bằng

a ~= b 3 So sánh không bằng So sánh không bằng

a != b 3 Không hỗ trợ, thay thế bằng a ~= b. Không hỗ trợ, thay thế bằng a ~= b.

a <> b 3 Không hỗ trợ, thay thế bằng a ~= b. Không hỗ trợ, thay thế bằng a ~= b.

3. Toán tử 1 ngôi

Toán tử MATLAB C
~a Toán tử Logic NOT. Đối tử toán tử NOT trên bít (bitwise) sử dụng hàm Toán tử bitwise NOT
bitcmp
!a Không hỗ trợ, sử dụng ~a để thay thế. Toán tử logic NOT
-a Số âm Số âm

a++ Không hỗ trợ Tăng tất cả các phần tử của vector hay ma trận. Tương đương a =
a+1.
a-- Không hỗ trợ Giảm tất cả các phần tử của vector hay ma trận. Tương đương a =
a-1.

4. Toán tử gán

Toán tử MATLAB C
a = b Phép gán thông thường Phép gán thông thường

a += b Không hỗ trợ, sử dụng a = a+b để thay thế. Tương đương a = a+b.

a -= b Không hỗ trợ, sử dụng a = a-b để thay thế. Tương đương a = a-b.

a *= b Không hỗ trợ, sử dụng a = a*b để thay thế. Tương đương a = a*b.

a /= b Không hỗ trợ, sử dụng a = a/b để thay thế. Tương đương a = a/b.

a &= b Không hỗ trợ, sử dụng a = bitand(a,b) để thay thế. Tương đương a = a&b (bitwise AND).

a ^= b Không hỗ trợ, sử dụng a = bitxor(a,b) để thay thế. Tương đương a = a^b (bitwise XOR)

a |= b Không hỗ trợ, sử dụng a = bitor(a,b) để thay thế. Tương đương a = a|b (bitwise OR)

Ví dụ MATLAB C

𝟏 𝟐 𝟑 A = [1 2 3; 4 5 6]; int A[2][3] = {{1, 2, 3}, {4, 5, 6}};


Khai báo ma trận A có giá trị là [ ]
𝟒 𝟓 𝟔

Gán giá trị 10 vào phần tử đầu tiên của vector V. V(1) = 10; V[0] = 10;
Gán giá trị 77 vào phần tử hàng 2 cột 9 của ma trận M. M(2,9) = 77; M[1][8] = 77;

III. Cú pháp lặp và điều kiện


Cú pháp MATLAB C
If else if expression if (test expression1)
{
statements // statement(1)
elseif expression }
else if(test expression2)
statements {
else // statement(2)
}
statements else if (test expression3)
{
end
// statement(3)
Ví dụ }
x = 10; .
minVal = 2; .
maxVal = 6; else
{
if (x >= minVal) && (x <= maxVal) // statement(n)
disp('Value within specified }
range.')
elseif (x > maxVal)
disp('Value exceeds maximum
value.')
else
disp('Value is below minimum
value.')
end
Switch case switch switch_expression switch (x) {
case value1:
case case_expression // If x is equal to value1, the code in this block will be executed
statements break;
case value2:
case case_expression // If x is equal to value2, the code in this block will be executed
statements break;
case value3:
... // If x is equal to value3, the code in this block will be executed
otherwise break;
...
statements case valuen:
end // If x is equal to valuen, the code in this block will be executed
break;
Ví dụ: default:
/*
n = input('Enter a number: ');
If x is not equal to one of the values above
the code in this block will be executed
switch n
*/
case -1
break;
disp('negative one')
}
case 0
disp('zero')
case 1
disp('positive one')
otherwise
disp('other value')
end

For for index = values for ( init; condition; increment ) {

statements statement(s);

end }

Ví dụ:

Ví dụ 1: for (int i = 1; i <= 5; i++) {

for v = 1.0:-0.2:0.0 printf("%d ", i);


disp(v)
end }

Ví dụ 2:
for v = [1 5 8 17]
disp(v)
end

While while expression while(condition) {


statements statement(s);
end }
Ví dụ 1:
n = 10; Ví dụ:
f = n;
while n > 1 while (n != 0) {
n = n-1; printf("%d ", n);
f = f*n;
end n--;
disp(['n! = ' num2str(f)]) }

Ví dụ 2:
limit = 0.8;
s = 0;

while 1
tmp = rand;
if tmp > limit
break
end
s = s + tmp;
end

continue for n = 1:50 continue


if mod(n,7)
continue
end
disp(['Divisible by 7: '
num2str(n)])
end
break limit = 0.8; break
s = 0;
while 1
tmp = rand;
if tmp > limit
break
end
s = s + tmp;
end

IV. Input và Output

Hàm MATLAB C
disp Dùng hàm disp để hiển thị kết quả của biến
name = 'Alice';
age = 12;
X = [name,' will be ',num2str(age),' this year.'];
disp(X)
sprintf Dùng hàm sprintf để tạo 1 chuỗi
name = 'Alice';
age = 12;
X = sprintf('%s will be %d this year.',name,age);
disp(X)

sprintf với định dạng


A = pi*ones(1,3);
txt = sprintf('%f | %.2f | %12f', A)

fprintf Dùng hàm fprintf để hiển thị với định dạng


name = 'Alice'; int n=30;
age = 12;
fprintf('%s will be %d this year.\n',name,age); printf("n = %d",n); //sẽ in ra: n = 30
input Dùng hàm input để nhập vào từ bàn phím int scanf(const char *format, ...)
prompt = 'What is the original value? '; Ví dụ:
x = input(prompt) char str1[20];
y = x*10 printf("Nhap ten: ");
Đối với phiên bản Matlab mới, kiểu dữ liệu input có scanf("%s", &str1);
thể là số, chuỗi hoặc hàm
Nếu chỉ input dạng text ta sử sử dụng cú pháp
str = input(prompt,'s')
Một số định dạng khi dùng hàm fprintf

Value Type Conversion Details


Integer, signed %d or %i Base 10
Integer, unsigned %u Base 10
%o Base 8 (octal)
%x Base 16 (hexadecimal), lowercase letters a–f
%X Same as %x, uppercase letters A–F
Floating-point number %f Fixed-point notation (Use a precision operator to specify the number of digits after the decimal point.)
%e Exponential notation, such as 3.141593e+00 (Use a precision operator to specify the number of digits after the decimal point.)
%E Same as %e, but uppercase, such as 3.141593E+00 (Use a precision operator to specify the number of digits after the decimal point.)
%g The more compact of %e or %f, with no trailing zeros (Use a precision operator to specify the number of significant digits.)
%G The more compact of %E or %f, with no trailing zeros (Use a precision operator to specify the number of significant digits.)
Characters or strings %c Single character
%s Character vector or string array. The type of the output text is the same as the type of formatSpec.

You might also like