matlab怎么写循环语句

1. matlab 如何使用循环语句 原发布者:jinziyatoo
循环结构1.for语句for语句的格式为:for循环变量=表达式1:表达式2:表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值 。步长为1时,表达式2可以省略 。for语句更一般的格式为:for循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕 。2.while语句while语句的一般格式为:while(条件)循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环 。3.break语句和continue语句与循环结构相关的语句还有break语句和continue语句 。它们一般与if语句配合使用 。break语句用于终止循环的执行 。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句 。continue语句控制跳过循环体中的某些语句 。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环 。求[100,200]之间第一个能被21整除的整数forn=100:200ifrem(n,21)~=0continueendbreakendn4.循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构 。例3-13若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数 。求[1,500]之间的全部完数 。form=1:500s=0;fork=1:m/2ifr
2. 怎样用MATLAB编一个循环语句 clear;clc;clf;
t=0:pi/20:2*pi;
R=10;r=2;
x=R*cos(t);
y=R*sin(t);
m=0;
kk=2*pi/6;
for k=0:kk:2*pi-kk
xi(m+1)=R*cos(k);
yi(m+1)=R*sin(k);
xx(:,m+1)=xi(m+1)+r*cos(t);
yy(:,m+1)=yi(m+1)+r*sin(t);
hold on
line([0 xi(m+1)],[0 yi(m+1)])
m=m+1;
end
plot(x,y,'r',xx,yy)
axis equal
再重复,就编一个子程序,不断调用 。
3. matlab编程问题,循环语句怎么加 建议把主程序修改如下:
r=0.0425;
%T: Time to expiration
T=2;%输入年数
%DP:Defaut point
%SD: short debt, LD: long debt
in = xlsread('数据-修改后.xls','b2:e118');
n = size(in,1);
out = cell(n+1,5);
out(1,:) = {'', 'Va', 'AssetTheta', 'DD', 'EDF'};
for ii=1:n
SD=in(ii,1);%输入
LD=in(ii,2);%输入
%计算违约点
%DP=SD+0.5*LD;
DP=SD+0.5*LD;
%D:Debt maket value
D=DP;%债务的市场价值,可以修改
%theta: volatility
%PriceTheta: volatility of stockprice
PriceTheta=in(ii,3);%(输入)
%EquityTheta: volatility of Theta value
EquityTheta=PriceTheta;
%AssetTheta: volatility of asset
%E:Equit maket value
E=in(ii,4);%(输入)
【matlab怎么写循环语句】%Va: Value of asset
%to compute the Va and AssetTheta
[Va,AssetTheta]=KMVOptSearch(E,D,r,T,EquityTheta)
%计算违约距离
DD=(Va-DP)/(Va*AssetTheta);
%计算违约率
EDF=normcdf(-DD);
out(ii+1,:) = {ii, Va, AssetTheta, DD, EDF};
end
xlswrite('Out.xls',out);
说明:
1、我的系统里直接读xlsx文件有点问题,原因懒得查了,另存成xls文件操作 。
2、程序运行后生成Out.xls文件,题主可以根据自己的需要进行修改 。
4. matlab里多个for循环的嵌套循环语句怎么写 不知道参数具体数值无法运行,这里给你指出编程错误 。
1
2
3
4
5
6
7
8
9
10
if s1>s2
for i=150:15:0;%应修改为i=150:-15:0
new1=AFFT(im1,i);
s10=AS(new1);
if abs(s10-s2)subplot(1,2,1),imshow(new1,[])
subplot(1,2,2),imshow(im2,[])
%这里你是否只需画一幅图?根据你的表达退出所有循环这里要加个break