Giáo trình mathlab toàn tập - Chương 13

8 7 0
Giáo trình mathlab toàn tập - Chương 13

Đang tải... (xem toàn văn)

Thông tin tài liệu

PHÂN TíCH Dữ LIệU Bởi vì MATLAB là một ứng dụng h-ớng ma trận nên nó dễ dàng thực hiện các phân tích thống kê trên các tập dữ liệu, trong khi theo mặc định MATLAB coi các tập dữ liệu đ-ợc l-u trữ trong các mảng cột, việc phân tích dữ liệu có thể thực hiện theo bất cứ chiều nào. Đó là trừ khi đ-ợc chỉ định theo một cách khác, các cột của một mảng dữ liệu thể hiện các thông số đo khác nhau, mỗi hàng thể 84 hiện một giá trị mẫu của các thông số...

83 for i=1:3 band=lower(abc(i)); %do each color band in turn %get (i)th input and make lower case if strncmp(band,'bla',3) % black (compare # of) vals(i)=0; % chars for unique match) elseif strncmp(band,'br',2) %brown vals(i)=1; elseif strncmp(band,'r',1) %red vals(i)=2; elseif strncmp(band,'o',1) %orange vals(i)=3; elseif strncmp(band,'y',1) %yellow vals(i)=4; elseif strncmp(band,'gre',3) %green vals(i)=5; elseif strncmp(band,'blu',3) %blue vals(i)=6; elseif strncmp(band,'v',1) %violet vals(i)=7; elseif strncmp(band,'gra',3) %gray vals(i)=8; elseif strncmp(band,'w',1) %white vals(i)=9; else error(['Unknown Color Band.']) end end if vals(1)==0 error('First Color Band Cannot Be Black.') end r=(10*vals(1)+vals(2))*10^vals(3); Sư dơng hµm nµy cho mét vµi vÝ dô: >> resistor('brown', 'black', 'red') ans= 1000 oOo - chơng 13 PHÂN TíCH Dữ LIệU Bởi MATLAB ứng dụng hớng ma trận nên dễ dàng thực phân tích thống kê tập liệu, theo mặc định MATLAB coi tập liệu đợc lu trữ mảng cột, việc phân tích liệu thực theo chiều Đó trừ đợc định theo cách khác, cột mảng liệu thể thông số đo khác nhau, hàng thể 84 giá trị mẫu thông số đo Ví dụ giả sử nhiệt độ ban ngày (tính theo độ C) thành phố tính tháng (31 ngày đợc ghi lại gán cho biến temps script M_file, chạy M_file giá trị temps đợc đa vào môi trờng MATLAB, thực công viƯc nµy, biÕn temps chøa: >> temps temps= 12 15 12 14 12 11 15 19 12 14 11 15 10 12 12 12 10 13 10 14 12 13 15 13 12 9 10 7 10 8 10 7 8 12 10 7 10 11 12 18 22 19 23 22 19 15 20 18 18 19 17 23 19 18 20 17 22 19 21 20 17 18 20 22 21 22 18 23 24 22 Mỗi hàng chứa nhiệt độ ngày đó, cột chứa nhiệt độ thành phố Để cho liệu trở lên dễ dàng hơn, h·y gâ vµo nh sau: >> d=1:31; % number the days of the month >> plot(d,temps) >> xlabel('Day of month') >> ylabel('Celsius') >> title('Daily High Tempratures in three Cities') 85 Hình 13.1 Lệnh plot vừa dùng minh hoạ thêm cách sử dụng Biến d vector dµi 31, biÕn temps lµ mét ma trËn 31x3 Cho trớc liệu này, lệnh plot tríc cột biến temps cho vào d Để minh hoạ vài khả phân tích liệu MATLAB, hÃy xét lệnh sau, dựa liƯu vỊ nhiƯt ®é ®· cho: >> avg_temp = mean(temps) avg_temp= 11.9677 8.2258 19.8710 VÝ dơ trªn chØ r»ng thành phố thứ có nhiệt độ trung bình cao nhất, MATLAB đà tính nhiệt độ trung bình cột cách riêng rẽ Nếu tính trung bình thành phố thì: >> avg_avg = mean(avg_temp) avg_avg= 13.3548 Khi mà giá trị đầu vào hàm phân tích liệu vector hàng hay cột MATLAB đơn giản tiến hành phép toán vector trả giá trị số Bạn dùng mảng để thực công việc này: >> avg_temp = mean(temps,1) % Giống nh trên, tính cho cột avg_temp = 11.9677 8.2258 19.8710 86 >> avr_tempr = mean(temps,2) avr_tempr = 12.6667 15.3333 12.0000 15.0000 13.3333 13.0000 13.0000 12.6667 14.6667 12.3333 14.3333 12.0000 13.0000 11.6667 13.6667 12.3333 11.3333 13.6667 12.0000 13.6667 13.3333 12.0000 14.3333 13.0000 12.6667 14.0000 13.0000 12.6667 16.0000 16.0000 15.3333 % Tính cho hàng Đây giá trị nhiệt độ trung bình ba thành phố ngày Xét toán tìm chênh lệch nhiệt độ thành phố so với giá trị trung bình, có nghĩa avg_temp(i) phải bị trừ cột thứ i biến temps Bạn c©u lƯnh nh− sau: >> temps-avg_temp ??? Error using ==> Matrix dimensions must agree Bởi thao tác thao tác đà định nghĩa mảng (temps mảng 31x3, avg_temp mảng 1x3) Có lẽ cách dùng vòng lặp for đơn gi¶n nhÊt: >> for i = 1:3 tdev(:,i) = temps(:,i)- avg_temp(i); end >> tdev tdev = 0.0323 -0.2258 -1.8710 87 3.0323 0.0323 2.0323 0.0323 -0.9677 3.0323 -3.9677 7.0323 0.0323 2.0323 -0.9677 -2.9677 -3.9677 3.0323 -3.9677 -1.9677 0.0323 -2.9677 0.0323 0.0323 -1.9677 1.0323 -2.9677 -1.9677 2.0323 0.0323 1.0323 3.0323 1.0323 0.0323 0.7742 -3.2258 -0.2258 -2.2258 0.7742 0.7742 1.7742 -1.2258 -1.2258 1.7742 -0.2258 -1.2258 -0.2258 -0.2258 0.7742 -1.2258 -1.2258 -0.2258 -0.2258 -0.2258 0.7742 3.7742 1.7742 -2.2258 -1.2258 -3.2258 -1.2258 1.7742 2.7742 3.7742 2.1290 -0.8710 3.1290 2.1290 -0.8710 -4.8710 0.1290 -1.8710 -1.8710 -0.8710 -2.8710 3.1290 -0.8710 -1.8710 0.1290 -2.8710 2.1290 -0.8710 1.1290 0.1290 -2.8710 -1.8710 0.1290 2.1290 1.1290 2.1290 -1.8710 3.1290 4.1290 2.1290 Khi thực phơng pháp ta thấy chậm so với câu lệnh đợc MATLAB thiết kế riêng để dùng cho mảng Khi ta nhân biến avg_temp ®Ĩ kÝch th−íc cđa nã b»ng víi kÝch th−íc temps Sau thực phép trừ nhanh h¬n rÊt nhiỊu: >> tdev = temps - avg_temp(ones(31,1),:) tdev = 0.0323 -0.2258 -1.8710 3.0323 0.7742 2.1290 0.0323 -3.2258 -0.8710 2.0323 -0.2258 3.1290 0.0323 -2.2258 2.1290 -0.9677 0.7742 -0.8710 3.0323 0.7742 -4.8710 -3.9677 1.7742 0.1290 7.0323 -1.2258 -1.8710 0.0323 -1.2258 -1.8710 2.0323 1.7742 -0.8710 -0.9677 -0.2258 -2.8710 -2.9677 -1.2258 3.1290 88 -3.9677 -0.2258 -0.8710 3.0323 -0.2258 -1.8710 -3.9677 0.7742 0.1290 -1.9677 -1.2258 -2.8710 0.0323 -1.2258 2.1290 -2.9677 -0.2258 -0.8710 0.0323 -0.2258 1.1290 0.0323 -0.2258 0.1290 -1.9677 0.7742 -2.8710 1.0323 3.7742 -1.8710 -2.9677 1.7742 0.1290 -1.9677 -2.2258 2.1290 2.0323 -1.2258 1.1290 0.0323 -3.2258 2.1290 1.0323 -1.2258 -1.8710 3.0323 1.7742 3.1290 1.0323 2.7742 4.1290 0.0323 3.7742 2.1290 avg_temp(ones(31,1),:) nhân hàng (và hàng nhất) biến avg_temp thành 31 bản, tạo lên ma trận 31x3 Trong cột thứ i avg_temp(i) >> max_temp = max(temps) max_temp= 19 12 24 C©u lƯnh tìm nhiệt độ lớn thành phố tháng >> [max_temp,x] = max(temps) max_temp= 19 12 24 x= 23 30 Cho biết giá trị nhiệt độ lớn thành phố giá trị số hàng x, giá trị lớn xt hiƯn, vÝ dơ nµy x cho biÕt ngµy nãng nhÊt th¸ng >> min_temp = min(temps) min_temp= 15 Cho biết nhiệt độ thấp thµnh >> [min_temp, n] = min(temps) min_temp= 15 n= cho biết giá trị nhiệt độ thấp thành phố số hàng n, giá trị thấp xảy Trong ví dụ này, n ngày lạnh th¸ng 89 >> s_dev = std(temps) s_dev= 2.5098 1.7646 2.2322 Cho biết độ chênh lệch chuẩn biến temps >> daily_change daily_change = -3 -4 -2 -2 -1 -7 11 -3 -7 -3 -2 -2 -1 -1 -7 -2 -3 0 -2 3 -4 -2 -4 -2 -2 2 -2 -1 = diff(temps) -3 -1 -3 -4 -2 -2 -4 -1 -3 -3 -1 -3 2 -1 -4 -2 Cho biÕt sù kh¸c nhiệt độ ngày liên tiếp độ chênh lệch nhiệt độ ngày hôm sau so với ngày hôm trớc Trong ví dụ này, hàng daily_change độ chênh lệch nhiệt độ ngày ngày thứ hai tháng 13.1 Các hàm phân tích liệu Phân tích liệu MATLAB đợc thực thông qua ma trận hớng cột, biến khác đợc lu giữ cột khác hàm thể giá trị biến thời điểm quan sát định Các hàm thống kê MATLAB gồm có: 90 Các hàm phân tích liệu cplxpair(x) cross(x,y) cumprod(x) cumprod(x,n) cumsum(x) cumsum(x,n) cumtrapz(x,y) cumtrapz(x,y,n) del2(A) diff(x) diff(x,m) diff(x,m,n) dot(x,y) gradient(Z,dx,dy) histogram(x) max(x), max(x,y) max(x,n) mean(x) mean(x,n) median(x) median(x,n) min(x), min(x,y) min(x,n) prod(x) prod(x,n) rand(x) randn(x) sort(x) sort(x,n) sortrows(A) std(x), std(0) std(x,1) std(x, flag, n) subspace(A,B) sum(x) sum(x,n) trapz(x,y) trapz(x,y,n) Xắp xếp cặp phức liên hợp Tích chéo vector Tích tÝch luü theo cét TÝch tÝch luü theo chiÒu n Tỉng tÝch l theo cét Tỉng tÝch l theo chiỊu n TÝch chÐo tÝch luü TÝch chÐo tÝch luü theo chiều n Toán tử rời rạc Laplacian điểm Tính độ chênh lệch phần tử Tính số cấp m phần tử Tính số cấp m phần tử theo chiều n Tích vô hớng hai vector Gradient vi phân Biểu đồ hình cét PhÇn tư lín nhÊt PhÇn tư lín nhÊt theo chiều n Giá trị trung bình cột Giá trị trung bình theo chiều n Giá trị phần tử cột Giá trị phần tử theo chiỊu n PhÇn tư nhá nhÊt PhÇn tư nhá nhÊt theo chiều n Tích phần tử cột Tích phần tử theo chiều n Số ngẫu nhiên phân bố Số ngẫu nhiên phân bố bình thờng Xắp xếp cột theo thứ tự tăng dần Xắp xếp theo chiều n Xắp xếp hàng theo thứ tự tăng dần Độ lệch chuẩn cột chuẩn hoá theoN-1 §é lƯch chn cđa cét chn ho¸ theoN §é lƯch chuẩn theo chiều n Góc hai điểm Tổng phần tử cột Tổng phần tử theo chiỊu n TÝch chÐo cđa y=f(x) TÝch chÐo theo chiỊu n -oOo - chơng 14 ĐA THứC 14.1 Các nghiệm đa thức Tìm nghiệm đa thức giá trị để đa thức không, toán thờng gặp thực tế MATLAB giải toán đồng thời cung cấp công cụ để tính toán đa ... daily_change daily_change = -3 -4 -2 -2 -1 -7 11 -3 -7 -3 -2 -2 -1 -1 -7 -2 -3 0 -2 3 -4 -2 -4 -2 -2 2 -2 -1 = diff(temps) -3 -1 -3 -4 -2 -2 -4 -1 -3 -3 -1 -3 2 -1 -4 -2 Cho biết khác nhiệt độ... 7.0323 -1 .2258 -1 .8710 0.0323 -1 .2258 -1 .8710 2.0323 1.7742 -0 .8710 -0 .9677 -0 .2258 -2 .8710 -2 .9677 -1 .2258 3.1290 88 -3 .9677 -0 .2258 -0 .8710 3.0323 -0 .2258 -1 .8710 -3 .9677 0.7742 0.1290 -1 .9677 -1 .2258... -1 .2258 -1 .2258 -0 .2258 -0 .2258 -0 .2258 0.7742 3.7742 1.7742 -2 .2258 -1 .2258 -3 .2258 -1 .2258 1.7742 2.7742 3.7742 2.1290 -0 .8710 3.1290 2.1290 -0 .8710 -4 .8710 0.1290 -1 .8710 -1 .8710 -0 .8710 -2 .8710

Ngày đăng: 11/05/2021, 04:01

Tài liệu cùng người dùng

Tài liệu liên quan