matlab简单代码大全(matlab编程代码)
很简单的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')