matlab编程1 - webdancer's Blog
matlab编程1
数据类型
前面已经学习了matlab编程的主要的数据类型就是矩阵。
介绍其他的一些数据类型:
** multiarrays
例如:rand(2,2,2)
** cellarrays
例如:carr=cell(8,1)
注意:
cellarrays用{}来索引,所以第二个元素为:carr{2}
cellarrays的元素可以使其他类型数据
**字符和文本
例如: str='hello world!'
**结构体
例如:
fp.no=9;
fp.name='torres';
控制流
1.条件语句。
if语句
if condition1, statement1 elseif condition2, statement2 else, statement3 end
与C语言的if是一致的,关键词不同,多了一个elseif。
switch语句
switch variable
case constant1,
statement1
case constant2,
statement2,
otherwise,
statement3
end
与C语言的switch是不一致的。matlab的switch不是fall through的。第一个case为true,下面的case
不会执行。
注意:在比较两个矩阵时,用isequal函数。
例子:
n = floor(real(double(n(1))));
if mod(n,2) == 1
% Odd order
M = oddOrderMagicSquare(n);
elseif mod(n,4) == 0
% Doubly even order.
% Doubly even order.
J = fix(mod(1:n,4)/2);
K = bsxfun(@eq,J',J);
M = bsxfun(@plus,(1:n:(n*n))',0:n-1);
M(K) = n*n+1 - M(K);
else
% Singly even order.
p = n/2; %p is odd.
M = oddOrderMagicSquare(p);
M = [M M+2*p^2; M+3*p^2 M+p^2];
if n == 2
return
end
i = (1:p)';
k = (n-2)/4;
j = [1:k (n-k+2):n];
M([i; i+p],j) = M([i+p; i],j);
i = k+1;
j = [1 i];
M([i; i+p],j) = M([i+p; i],j);
end
2.循环条件。
for语句
for condition,
statement;
end
while语句
while condition,
statement;
end
还有两个关键字 continue, break。和C语言中的用法是一致的。
例子:
二分法解方程x^3-2x-5。
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a > eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if fx == 0
break
elseif sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
disp(x)
try-catch语句
try
statement1
catch
statement2
end
语句与java中try-catch类似,try语句块里面有错误发生时,被catch捕获。错误可以用lasterr查看。
return语句
结束当前语句,返回到调用函数
评论 (0)