Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

BÀI 2.

CỦNG CỐ KIẾN THỨC MATLAB


Họ tên: Hồ Hoàng Phúc
MSSV: 19200156
Ca: T5 (7h30-9h15)

Tạo A và B
a.

b.
c.

d.
e. >> G = [A(1,1) A(2,1) A(3,1) A(4,1) A(2,5)*B(1,1)
A(2,4)*B(1,1); A(1,2) A(2,2) A(3,2) A(4,2) A(2,3)*B(1,1)
A(2,2)*B(1,1); A(1,3) A(2,3) A(3,3) A(4,3) A(2,1)*B(1,1)
A(1,5)*B(1,1); A(1,4) A(2,4) A(3,4) A(4,4) A(1,4)*B(1,1)
A(1,3)*B(1,1); A(1,5) A(2,5) A(3,5) A(4,5) A(1,2)*B(1,1)
A(1,1)*B(1,1)];

Câu 2: Cho biểu thức điện áp và dòng điện theo thời gian:
• V(t) = 0,5sin (111t + 300) + 0,3cos(217t)
• I(t) = 0,7cos(173t) + 0.02
Cho thời gian t chạy từ 0 đến 10 s, bước nhảy 10 ms.
a. Viết script .m vẽ đồ thị V và I theo t trên cùng một đồ thị. Đồ thị V là màu hồng, nét đứt.
Đồ thị I là màu đen, nét đứt và chấm. Tiêu đề đồ thị là “A lovely plot”. Tiêu đề trục
hoành là “Time (s)” và trục tung là “Voltage (V) and Current (mA)”. Đồ thị cần có chú
thích rõ ràng.
b. Tính và vẽ chồng thêm đồ thị công suất P. Đồ thị P là màu xanh dương, nét liền, kích
thước đường đồ thị là 3. Bổ sung chú thích của P.
c. Tại các điểm mà giá trị công suất lớn hơn 0.2 mW, đánh dấu bằng ký tự ‘x’ lên đồ thị.
(gợi ý: sử dụng hàm text).
% Tạo mảng thời gian từ 0 đến 10 s với bước nhảy 10 ms
t = 0:0.01:10;

% Biểu thức điện áp V(t) và dòng điện I(t)


V = 0.5*sin(111*t + 300) + 0.3*cos(217*t);
I = 0.7*cos(173*t) + 0.02;

% Tính công suất P(t)


P = V .* I;

% Vẽ đồ thị V và I trên cùng một đồ thị


figure;
hold on;
plot(t, V, 'm--', 'LineWidth', 1.5, 'DisplayName', 'Voltage
(V)');
plot(t, I * 1000, 'k-.', 'LineWidth', 1.5, 'DisplayName',
'Current (mA)');

% Vẽ đồ thị công suất P


plot(t, P * 1000, 'b-', 'LineWidth', 3, 'DisplayName', 'Power
(mW)');

% Đánh dấu các điểm có công suất lớn hơn 0.2 mW bằng ký tự 'x'
threshold = 0.2;
indices = find(P > threshold);
scatter(t(indices), P(indices) * 1000, 'x', 'r', 'DisplayName',
'P > 0.2 mW');

% Thiết lập tiêu đề và chú thích đồ thị


title('A Lovely Plot');
xlabel('Time (s)');
ylabel('Voltage (V) and Current (mA)');
legend('Location', 'northwest');
grid on;
hold off;

% Bổ sung chú thích và chỉ mục


for i = 1:length(indices)
text(t(indices(i)), P(indices(i)) * 1000, 'x',
'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle');
end

Câu 3: Viết hàm có dạng thong_ke_diem(diem) với tham số diem truyền vào là mảng
chứa điểm của nhiều sinh viên. Hàm này có nhiệm vụ sẽ thống kê ra số lượng điểm của sinh
viên, điểm thấp nhất, điểm cao nhất và điểm trung bình làm tròn đến chữ số thập phân thứ 2.
Truyền vào [9.0 5.5 7.5 3.0 6.0 6.5 10.0 8.5 4.5 9.0 9.5] và kiểm tra.
function thong_ke_diem(diem)
% Kiểm tra nếu mảng điểm rỗng
if isempty(diem)
disp('Mảng điểm rỗng.');
return;
end

% Số lượng điểm
so_luong_diem = length(diem);

% Điểm thấp nhất và điểm cao nhất


diem_thap_nhat = min(diem);
diem_cao_nhat = max(diem);

% Điểm trung bình làm tròn đến chữ số thập phân thứ 2
diem_trung_binh = round(mean(diem), 2);

% In kết quả
disp(['Số lượng điểm: ', num2str(so_luong_diem)]);
disp(['Điểm thấp nhất: ', num2str(diem_thap_nhat)]);
disp(['Điểm cao nhất: ', num2str(diem_cao_nhat)]);
disp(['Điểm trung bình: ', num2str(diem_trung_binh)]);
end

Kết quả

Câu 4: Tạo một ma trận A kích thước 5x5, gồm các phần tử là số nguyên bé hơn hoặc bằng
100. Tìm và in ra phần tử lớn nhất trong ma trận và vị trí (hàng,cột) của phần tử đó. (yêu cầu:
CHỈ sử dụng hàm randi, max, fprintf).
>> % Tạo ma trận A kích thước 5x5 với các phần tử nguyên bé hơn
hoặc bằng 100
A = randi(100, 5, 5);

% Tìm phần tử lớn nhất trong ma trận


[max_value, max_index] = max(A(:));

% Tìm vị trí của phần tử lớn nhất


[row, col] = ind2sub(size(A), max_index);

% In ra phần tử lớn nhất và vị trí của nó


fprintf('Phần tử lớn nhất trong ma trận A là: %d\n', max_value);
fprintf('Vị trí của phần tử lớn nhất là hàng %d, cột %d\n', row,
col);
Kết quả

You might also like