星期五, 12月 01, 2006

work9

r95631002 黃聖峰 作業9

What's difference between the commands "line" and "plot", explain by using your own examples.




(1)第一個不同,plot不能一次畫二個圖,因為它會覆蓋第一個圖,必須要用hold on來保持住第一個圖或是用plot(x,y,x,y1)也可以

(2)第二個不同,要是想更改line的顏色和型式,line不能直接在後面接'顏色的代碼'和'型式的代碼'(plot的代碼應用的比較多),要用屬性名稱才能加其代碼

注意一下,要是在程式碼改其'顏色'或'型式'要是一打錯其屬性名稱,則程式就會不會畫出圖.

最好是用set 指令來改變會比較好

程式碼
clear all
close all
clc

x=0:500;x1=500:1000;
y=0.25*exp(-0.05*x);
y1=0.5*exp(-0.05*x);

figure(1);line(x,y)
line(x1,y1,'color','r','linestyle','+') % 必須要用出屬性名稱才能加其代碼
xlabel('x軸')
ylabel('y軸')

figure(2)
hold on % 利用hold on
plot(x,y)
plot(x1,y1,'r*') % 直接用代碼
xlabel('x軸')
ylabel('y軸')
hold off

figure(3)
plot(x,y,x1,y1) % 用plot它每一條線條都會有不同的顏色

星期二, 11月 28, 2006

小程式 月曆產生器



clear all
close all
clc
a=menu('萬年曆','建月曆請按此','查某年某月某日為星期幾請按此');
if a==1
y=inputdlg({'請輸入你要建那一年的月曆'});
y=str2num(char(y));
m=menu('請選擇你要建那一月的月曆','1','2','3','4','5','6','7','8','9','10','11','12');
ans=[];
if rem(y,100)==0 & rem(y,400)==0 rem(y,4)==0
d1=[31 29 31 30 31 30 31 31 30 31 30 31];
else
d1=[31 28 31 30 31 30 31 31 30 31 30 31];
end
s=y-1;c=d1(1:(m-1));
for k=1:d1(m)
c1=sum(c)+k;
ss=s+fix(s/4)-fix(s/100)+fix(s/400)+c1;
ans(k)=rem(ss,7);
end
ans(ans==0)=7;
pp=ans(1);ans1=[];
k1=0;
for n=1:6;
for m1=pp:7
ans1(n,m1)=k1;
k1=k1+1;
end
pp=1;
end
ans1(ans1>d1(m))=0;
s=xlswrite('月曆.xls',{[y],' 年',[m],' 月'});
s=xlswrite('月曆.xls',{'星期日','星期一','星期二','星期三','星期四','星期五','星期六'},...
'a2:g2');
s=xlswrite('月曆.xls',ans1,'a3:g8');
as=sprintf(['你的月曆已經建好了\n\n','請到你的儲存路徑下打開[月曆.xls]這個檔\n\n']);
msgbox(as)
else
y=inputdlg({'請輸入你要查詢那一年'});
y=str2num(char(y));
m=inputdlg({'請輸入你要查詢那一月'});
m=str2num(char(m));
k=inputdlg({'請輸入你要查詢那一日'});
k=str2num(char(k));
ans=[];
if rem(y,100)==0 & rem(y,400)==0 rem(y,4)==0
d1=[31 29 31 30 31 30 31 31 30 31 30 31];
else
d1=[31 28 31 30 31 30 31 31 30 31 30 31];
end
s=y-1;
c=d1(1:(m-1));
c1=sum(c)+k;
ss=s+fix(s/4)-fix(s/100)+fix(s/400)+c1;
dd=rem(ss,7)+1;
di={'日','一','二','三','四','五','六'};
msgbox(['你查詢的',num2str(y),'年',num2str(m),'月',num2str(k),'日','是星期',di(dd)])
end



結果






















星期一, 11月 27, 2006

work8


第一題
Find the multiplication result of two polynorminals,
in which p=133x^5+122x^3+1, q=2x^4+100x^2+1

程式碼
p=[133 0 122 0 0 1];
q=[2 0 100 0 1];
ans1=conv(p,q)
結果
ans1 =
266 0 13544 0 12333 2 122 100 0 1
即為266x^9+13544x^7+12333x^5+2x^4+122x^3+100x^2+1

第二題
A polynorminal is defined as f=100x^3+23x^2+x+45
Find the value f(x) if x is a magic matrix in the order of 5

程式碼
f=[100 23 1 45];
x=magic(5);
ans2=polyvalm(f,x)

結果
ans2 =
5830132 5825724 5059176 5210878 5633875

5824573 5332275 5196252 5496574 5710111

5206104 5074326 5518893 5949340 5811122

5310105 5521572 5826264 5702291 5199553

5388871 5805888 5959200 5200702 5205124

第三題
Using p and q defined in the item 1, find the quotient and residue of p/q

程式碼
p=[133 122 1];
q=[2 100 1];
[s,r]=deconv(p,q)

結果
s =
66.5000 (商)
r =
1.0e+003 *
0 -6.5280 -0.0655 (餘)

第四題
Find the roots of p=0 and q=0, in which both p & q are defined in item 1

程式碼
p=[133 0 122 0 0 1]
q=[2 0 100 0 1]
p=roots(p)
q=roots(q)

結果
p =
-0.0045 + 0.9578i
-0.0045 - 0.9578i
0.1039 + 0.1744i
0.1039 - 0.1744i
-0.1988
q=
0 + 7.0704i
0 - 7.0704i
0 + 0.1000i
0 - 0.1000i

第五題
Fit a polynorminal curve to following data to an order of 3. x=[1:9];
y=[1210, 1866, 2301, 2564, 2724, 2881, 2879, 2915, 3010]

程式碼
x=[1:9]; %應該只有到9
y=[1210 1866 2301 2564 2724 2881 2879 2915 3010] ;
pans=polyfit(x,y,3)

結果
pans =
6.3047 -134.4603 994.3540 350.9127


花蓮的海豚

花蓮的海豚