matlab简单代码大全(matlab编程代码)

http://www.itjxue.com  2023-03-16 01:10  来源:未知  点击次数: 

很简单的MATLAB代码!!!!

Cost = zeros(50);

for i=1:50

for j=1:50

if Cost(i,j)==0

Cost(j,i)=inf;

end

end

end

MATLAB简单

1)划分子区域

方法一:

图像I是个矩阵,划分为子区域就是按一定规律取矩阵的对应行列。

例如I ? 100*100矩阵,10*10个子区域为:

则其

第一块为:(1:10,1:10) ? ?子区域编号为(1,1)

第二块为:(11:20,1:10) ?子区域编号为(2,1)

以此类推:

可以通过循环来实现:

for i=1:10;

? ?for j=1:10;

? ?eval(['I' num2str(i) num2str(j) '=I(1+10*(i-1):10+10*(i-1),1+10*(j-1):10+10*(j-1))']);

? ?end

end

每个子区域为I11 I12 I13...I1010

示例:

方法二:通过裁剪命令,裁剪出对应的区域:

I2=imcrop(I,RECT)

RECT是对应区域的边界

比如:

I11=imcrop(I,[1,1,10,10]);即子区域的左上角点坐标和右下角点坐标。

示例代码如下:

for i=1:10;

? ?for j=1:10;

? ?eval(['I' num2str(i) num2str(j) '=imcrop(I,[1+10*(i-1),1+10*(i-1),10+10*(j-1),10+10*(j-1)])']);

? ?end

end

2)直方图的求取和画法:

[x,n]=hist(I(:),1:255);

% x返回横坐标数组-----频数统计的小区间的中点

% n返回纵坐标数组-----各小区间内的频数

plot(n,x)

此外也可以直接用:

p=imhist(I);

plot(p);

概率密度:plot(p/N);

%N为区域总点数,如10*10。

3)将划分区域和灰度直方图一起使用:

for i=1:10;

? ? for j=1:10;

? ? p(10*(i-1)+j,:)=imhist(I(1+10*(i-1):10+10*(i-1),1+10*(j-1):10+10*(j-1)));

? ? end

end

则每个子区域的直方图统计数据在p矩阵的每一行中,共计100行。

matlab编程 求代码

1.打开matlab2012b,新建new script.输入如下代码:a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

2.点击“run”运行.选择好保存的文件名和保存目录.这里取文件名为:yiyuanercifangchengqiujie.运行结果如下:依次输入a、b、c的值 yiyuanercifangchengqiujiea=?6b=?7c=?9x1=-0.58333+1.0769i,x2=-0.58333-1.0769i可以连续运行,也就是说可以接着输入下一组a、b、c的值.

3.附例1:用 solve方法来求一元一次方程组的根.

一道简单的matlab,要具体的代码

1、 f=@(x)exp(x)-3*x.^2; a1=fsolve(f,1); a2=fsolve(f,0); x=-2:0.01:2; y=f(x); figure plot(x,y,x,zeros(1,length(x))) hold on plot(a1,0,'r*',a2,0,'r*') 2、 f=@(x)x.*sin(x)-1/2; a1=fsolve(f,1); a2=fsolve(f,3); a3=fsolve(f,5); x=0:pi/100:3*pi; y=f(x); figure plot(x,y,x,zeros(1,length(x))) hold on plot(a1,0,'r*',a2,0,'r*',a3,0,'r*') 3、 f=@(x)sin(x).*cos(x)-x.^2; a1=fsolve(f,0); a2=fsolve(f,3); x=-1:0.001:1; y=f(x); figure plot(x,y,x,zeros(1,length(x))) hold on plot(a1,0,'r*',a2,0,'r*') 4、 f=inline('exp(811*x.^2)'); jifen=quad(f,0,1/2); 5、 syms x f=sqrt(0.811+x); f8=taylor(f,9) 祝你学习愉快!

求解matlab代码

该问题属于线性规划最优解问题,解决的方法如下:

1、创建自定义目标函数,即

f=x1+x2+x3+x4+x5+x6

2、创建自定义约束条件函数,即

x1+x5+x6=18

2*x3+x4=18

2*x1+6*x2+3*x4+x5=26

3、使用fmincon()极值函数,求解其x1、x2、x3、x4、x5、x6

4、根据上述方法编程并运行,可以得到如下结果

请帮忙编写几个简单matlab的代码。

没看明白你所谓“x取值不能为0和0.05”确切的要表达什么意思,是对哪个题而言的(至少对第2题不存在这个问题)?

如果要剔除x=0或x=0.05的点,可以有两种做法:

1、从数据中剔除,例如对第1题,可以用

y(x==0|x==0.05)=[];

x(x==0|x==0.05)=[];

2、绘图效果上剔除,也就是把数据换成NaN,使得绘图时不显示。对第1题:

y(x==0|x==0.05)=NaN;

代码如下(在所给代码基础上改动):

%?第一题程序如下:

x=0:0.05:4*pi;

y=sin(x);

y(x==0|x==0.05)=NaN;

plot(x,y)

xlabel('x')

title('y=sin(x)')

grid?on

%?第二题程序如下:

y=sin(pi/5)+4*cos(pi/4)

????

%?第三题程序如下

z=0:0.05:10*pi;

x=sin(z);????

y=cos(z);???

z(x==0|x==0.05)=NaN;

figure

plot3(x,y,z);

grid?on

%?第四题程序

x=0:0.05:10*pi;

z=sin(x);????

y=cos(x);

y(x==0|x==0.05)=NaN;

z(x==0|x==0.05)=NaN;

figure

subplot(211)

plot(x,y);

xlabel('x')

grid?on

title('y=cos(x)')

subplot(212)

plot(x,z)

title('y=sin(x)')

grid?on

xlabel('x')

(责任编辑:IT教学网)

更多

推荐鼠标代码文章