matlab怎么编写目标函数的程序

matlab怎么编写目标函数的程序,第1张

举个例子,希望有所帮助。 代码 clc; clear all; close all; % 载入xls文件 [num, txt, row] = xlsread('c:\\test\\testxls'); apple = num(:, 1); % apple列数据 numlimt = 3; % 阈值 ind = find(apple > numlimt); % 寻找所在的行 num(ind, :) % 显示 结果 ans = 4 3 4 5 4 2 >>

你给出的是C语言程序吧,matlab也是一样的,只不过数组的编号是从1开始的,而且语法有些不同。

t(1)=0

s(1)=0

B(1)=0

for n=2:160

x(n)=z600028;

t(n)=x(n)2/13+t(n-1)11/13

s(n)=x(n)2/27+s(n-1)25/27

A(n)=t(n)-s(n)

B(n)=A(n)2/10+B(n-1)8/10

end

可以使用两层for循环控制命令来创建矩阵A,具体实现如下:

matlab

% 初始化矩阵A为全零矩阵

A = zeros(5, 6);

% 使用for循环控制命令,遍历矩阵的每个元素,并计算其值

for i = 1:5

for j = 1:6

A(i, j) = 1 / (i + j - 1);

end

end

% 输出矩阵A的值

disp(A)

运行以上代码,就可以创建矩阵A并输出其值。

判断矩阵一致性检验的Matlab源程序代码

Matlab源程序代码如下:

clc

clear

disp('请输入判断矩阵A')

A=input('A=');

[n,n] = size(A)

%方法1: 算术平均法

Sum_A = sum(A);

SUM_A = repmat(Sum_A,n,1);

Stand_A = A / SUM_A;

Stand_A = A / Sum_A; % 这样也可以的

disp('算术平均法求权重的结果为:');

disp(sum(Stand_A,2)/n)

%方法2: 几何平均法

Prduct_A = prod(A,2);

Prduct_n_A = Prduct_A ^ (1/n);

disp('几何平均法求权重的结果为:');

disp(Prduct_n_A / sum(Prduct_n_A))

%方法3: 特征值法求权重

[V,D] = eig(A);

Max_eig = max(max(D))

[r,c]=find(D == Max_eig , 1);

disp('特征值法求权重的结果为:');

disp( V(:,c) / sum(V(:,c)) )

%计算一致性比例CR

CI = (Max_eig - n)/(n-1);

RI=[0 00001 052 089 112 126 136 141 146 149 152 154 156 158

159];

% 这里n=2时,一定是一致矩阵,所以CI = 0,为了避免分母为0,将这里的第二个元素改为了很接近0的正数

CR=CI/RI(n);

disp('一致性指标CI=');disp(CI);

disp('一致性比例CR=');disp(CR);

if CR<010

disp('因为CR<010,所以该判断矩阵A的一致性可以接受!');

else

disp('注意:CR >=

010,因此该判断矩阵A需要进行修改!');

end

function

linear_fit %最小二乘法拟合直线

clear;

clc;

prompt={'Name

of data file'};

title='Linear_fit';

lineNo=2;

def={'Linearfitdat'};

outval=inputdlg(prompt,title,lineNo,def);

if

isempty(outval)==1,return,end

filename=outval{1};

data=load(filename);

x=data(:,1);

y=data(:,2);

[a,b]=linearfit(x,y);

yy=a+bx;

func=['y=',num2str(a),'+',num2str(b),'x'];

plot(x,y,'bx','markersize',10);

hold on

plot(x,yy,'r-','linewidth',15)

xlabel('t(\year)');

ylabel('S(\mm)');

text(x(2),yy(length(yy)-1),func)

function

[a,b]=linearfit(x,y)

xy=xy;

x2=x^2;

x_mean=mean(x);

y_mean=mean(y);

xy_mean=mean(xy);

x2_mean=mean(x2);

b=(xy_mean-x_meany_mean)/(x2_mean-x_mean^2);

a=y_mean-bx_mean;

return

[N,M]=size(A);

a = 0;

for n = 1:N

for m = 1:M

a = a + A(n,m);

end

end

例如:

function proj3

a=input('input the min')

b=input('input the max')

n=input('input the number:')

h=(b-a)/n

i=1;

x=a+h;

y=x^2h;

for i=1:n-1

x=x+h;

y=x^2h+y;

i=i+1;

end

i %没有分号

x %没有分号

y %没有分号

%循环程序中的赋值语句和之前的赋值语句最后要有分号,有了分号就不会输出值了,如果想最后输出哪个值,就在最后把变量名写上就可以了,记住这回不要分号了。

扩展资料:

MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。

开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

参考资料来源:百度百科-MATLAB

以上就是关于matlab怎么编写目标函数的程序全部的内容,包括:matlab怎么编写目标函数的程序、如何用matlab编写函数程序、matlab 中,用循环控制命令编写程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9306861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存