用matlab畫這個的影象,怎麼程式設計

時間 2021-07-02 23:35:08

1樓:匿名使用者

用matlab繪製微分方程組數值解x1(t)和x2(t)的圖形。可以按下列方法來解決。

1、建立微分方程組自定義函式,ode_fun(t,x)

2、呼叫 ode45(…)函式命令,求解此微分方程組,得到x1(t),x2(t)

3、呼叫plot(…)函式命令,繪製x1(t)和x2(t)的圖形

按此思路程式設計,執行可得到如下圖形。

2樓:藤原子大雄

隨機變數小於或者等於某個數值的概率p(x<=x),即:f(x) = p(x<=x)

累積分佈函式(cumulative distribution function):對連續函式,所有小於等於a的值,其出現概率的和。f(a)=p(x<=a)

根據這張累積分佈函式圖,可以很方便地回答之前的兩個問題:

1)cdf中橫軸上的2對應的y值約為0.98,因此所有大於2的資料點所佔比例約為2%。

2)cdf中橫軸上的1.3對應的y值約為0.75,因此所有介於1.3和2之間的資料點所佔比例約為23% (0.98-0.75)。

與直方圖、核密度估計相比,累積分佈函式存在以下幾個特點:

累積分佈函式是x軸單調遞增函式。

累積分佈函式更加平滑,影象中噪音更小。

累積分佈函式沒有引入頻寬等外部概念,因此不會丟失任何資料資訊。對於給定的資料集,累積分佈函式是唯一的。

累積分佈函式一般都經過歸一化處理,單調遞增且趨近於1。

下面我們來講一下怎麼用matlab來畫我們的累計分佈圖.

比如我們有一組csv的資料,我們把這個儲存這個資料的檔案取名叫做test.csv

116,218,119

123,219,106

113,219,119

117,232,105

118,208,117

116,222,106

117,221,119

129,232,108

124,234,118

124,234,107

132,234,117

125,226,106

135,225,112

126,231,107

134,250,113

141,223,107

118,260,113

117,249,107

112,261,118

118,234,107

118,257,119

119,256,105

117,281,118

129,266,107

131,260,119

143,239,105

128,263,120

135,267,107

127,259,118

119,285,103

159,269,119

138,264,106

142,259,122

128,285,111

158,269,133

129,264,106

130,259,124

137,228,105

139,262,126

130,249,111

114,275,117

126,227,107

119,230,118

118,224,107

130,226,118

126,227,106

129,264,114

125,254,106

132,252,114

130,229,106

135,229,117

121,251,108

129,243,119

125,226,105

113,275,114

120,255,104

111,274,119

118,255,107

115,274,120

129,260,107

126,249,119

135,235,109

136,281,125

132,266,106

134,263,122

123,255,108

129,258,116

127,264,105

113,257,122

115,264,102

129,257,133

126,275,104

126,272,123

122,260,108

128,256,120

117,265,105

117,254,122

117,263,109

123,238,125

130,285,106

130,282,121

152,251,106

131,233,111

現在我們就是要用這個資料畫一組cdf影象.

%read data into matirx%http function fid = fopen('./test.csv','rt'); %首先開啟檔案把資料讀取出來c = textscan(fid, '%f %f %f', 'delimiter',',');

fcolse(fid); %之後把資料掃描進c這個變數中,我們是按照浮點型別的形式來處理我們的資料的%由於我們的資料有三列,所有我們這裡取了三個%f出來,根據不同的資料我們取不同的格式說明符號.可以用類似c語言.每個資料之間是按照","來做分割.

%delimiter表示的是取某些分割符來切分資料,再後面我們寫逗號,表示按照逗號來分割資料data1 = deal(c);% 每一列資料表示的一次隨機實驗中取到的隨機變數,所以我們分別處理%這三組資料,以此類推.data2 = deal(c);

data3 = deal(c);

cdfplot(data1);% 在matlab中畫圖我們使用cdfplot,這個命令set(h1,'color','b','linewith',3);

如圖公式用matlab畫圖,請問該如何編寫程式? 30

3樓:匿名使用者

意思是我如果寫出這個程式了,完全符合你的要求,可以得到比20分更多的獎勵分?

現在我寫好了。我設定的m取值從0-1(不含1),pf是一個上凸的單調減曲線,取值從1.8左右減小到0左右。

用matlab進行m檔案操作與畫圖,繪圖的,我要程式過程,都是程式設計題.

4樓:匿名使用者

x=1;

y=2;

theta=pi/10;

r=0.5;

axis equal

t = linspace(0+theta,2*pi+theta,6);

xr = x+r*cos(t);

yr = y+r*sin(t);

xk = zeros(1,11);

yk = zeros(1,11);

xk(1) = xr(1); yk(1) = yr(1); [xk(2) yk(2)] = crosspoint([xr(1) yr(1)],[xr(3) yr(3)],[xr(2) yr(2)],[xr(5) yr(5)]);

xk(3) = xr(2); yk(3) = yr(2); [xk(4) yk(4)] = crosspoint([xr(2) yr(2)],[xr(4) yr(4)],[xr(1) yr(1)],[xr(3) yr(3)]);

xk(5) = xr(3); yk(5) = yr(3); [xk(6) yk(6)] = crosspoint([xr(2) yr(2)],[xr(4) yr(4)],[xr(3) yr(3)],[xr(5) yr(5)]);

xk(7) = xr(4); yk(7) = yr(4); [xk(8) yk(8)] = crosspoint([xr(3) yr(3)],[xr(5) yr(5)],[xr(1) yr(1)],[xr(4) yr(4)]);

xk(9) = xr(5); yk(9) = yr(5); [xk(10) yk(10)] = crosspoint([xr(1) yr(1)],[xr(4) yr(4)],[xr(2) yr(2)],[xr(5) yr(5)]);

xk(11)=xk(1);yk(11)=yk(1);

plot(xk,yk);

%fill(xk,yk,'w')

axis equal

axis off;

需要另寫一個函式,計算交叉點

function [x,y]=crosspoint(p1,p2,p3,p4)

x1 = p1(1); y1 = p1(2);

x2 = p2(1); y2 = p2(2);

x3 = p3(1); y3 = p3(2);

x4 = p4(1); y4 = p4(2);

if x1==x2

x = x1;

k2 = (y4-y3)/(x4-x3);

y = k2*(x-x3)+y3;

elseif x3==x4

x = x3;

k1 = (y2-y1)/(x2-x1);

y = k1*(x-x1)+y1;

else

k1 = (y2-y1)/(x2-x1);

k2 = (y4-y3)/(x4-x3);

sol = [-k1 1;-k2 1]\[y1-k1*x1;y3-k2*x3];

x = sol(1);y = sol(2);

endend

%圓球syms x y z;

f=x^2+y^2+z^2-16;

nv=jacobian(f,[x y z]);

[x,y,z]=sphere;

surf(4*x,4*y,4*z);

shading interp

%指定某點

x=-1;y=-2;z=sqrt(16-x^2-y^2);

nv=double(subs(nv));

hold on;

quiver3(x,y,z,nv(1),nv(2),nv(3),.5);%法向量

t=-1:.5:1;

[xx,yy]=meshgrid(t+x,t+y);

zz=-(nv(1)*(xx-x)+nv(2)*(yy-y))/nv(3)+z;

mesh(xx,yy,zz);%切平面

clear all;

close all;

figure;hold on;

x1=[0 10 10 0 0];

y1=[0 0 0 0 0];

z1=[0 0 10 10 0];

x2=[10 10 10 10 10];

y2=[0 10 10 0 0];

z2=[0 0 10 10 0];

x3=[0 10 10 0 0];

y3=[10 10 10 10 10];

z3=[0 0 10 10 0];

x4=[0 0 0 0 0];

y4=[0 10 10 0 0];

z4=[0 0 10 10 0];

plot3(x1,y1,z1,'color',[0 0 0]);

plot3(x2,y2,z2,'color',[0 0 0]);

plot3(x3,y3,z3,'color',[0 0 0]);

plot3(x4,y4,z4,'color',[0 0 0]);

% plot3(x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4,x5,y5,z5,'color',[0 0 0]);

view(3);

x=0:0.1:10;

z=0.4.*(x-5).^2;

y=zeros(length(x));

hold on;

plot3(x,y,z);

y=10.*ones(length(x));

plot3(x,y,z);

y=0:0.1:10;

z=0.4.*(y-5).^2;

x=zeros(length(x));

plot3(x,y,z);

x=10.*ones(length(x));

plot3(x,y,z);

set(gca,'xtick',,'xticklabel',);

set(gca,'ytick',,'yticklabel',);

set(gca,'ztick',,'zticklabel',);

matlab這個分段函式影象怎麼畫

這是一個很典型的問題哈 問題出在這裡 myfun的輸入x你是當做單個數字來處理的,而實際你plot x,myfun x 裡的x是一個陣列,所以在myfun的if判斷裡,只取了第一個元素x 1 做判斷,然後用判斷的結果來計算所有的x i 你要寫成這樣,我寫個簡單點的,你自己照著改x 1 0.1 1 y...

為什麼這個matlab沒有影象,MATLAB中怎麼沒有顯示影象啊?

你這個x.y1.y2.y3都是乙個值,畫出圖來就是乙個點。clear clcc1 2 c2 3 sig1 2 sig2 4 x 10 c1 y1 exp x c1 2 2 sig1 2 subplot 311 plot x,y1 axis 10,50,0,1 title gaussian mf wh...

求問y e x影象怎麼畫,x y z影象怎麼畫

函小苼 y e x x y e x x e x x e x x 1 x 令y 0,解得x 1 x 1 時,y 0 x 1 時,y 0 故函式 y e x x 在 x 1 處取得極小值 y e在 1,單調遞增,y 0,圖象在第一象限在 0 單調遞減,y 0,圖象在第三象限在 0,1 單調遞減,y 0,...