自己在家开网站做推广/最近国际新闻大事20条

一些小练习中很matlab的做法--即能用数组+现成函数解决的运算就避免使用循环结构,也对一部分些基础题目做一个记录,顺便补全一些常用函数、矩阵。
1.在1000-3000中自小到大的整数中,找出第二个和第五个能被41整除的整数组成的行向量。(length、find、rem+数组)
function s=myfun
v=1000:3000; %生成行向量
idx =find(rem(v,41)==0); %利用rem、find函数找出满足条件的数并返回一个行向量
if length(idx)<5, error % 找到满足条件的元素不够多, 与设计的题目不符合
end
s=v(idx([2 5])); %然后访问第二个和第五个数赋给输出参数。
2.请计算
function s=myfun
p = 2:2:46; %生成指数的行向量,步长为2
s = sum(1.09.^p); %直接用q作为底对数组操作,再用sum求和
3.已知矩阵
function A=myfun
a=1.3;
b=1.29;
c=1.31;
d=0.89;
n=1:20;
A=[a.^n; b.^n; c.^n; d.^n];
4.已知函数
function s=myfun %用主函数子函数来做i=1:15; %先生成i的行向量s = sum(f(i,i)); %先直接用子函数f表达求和式子,f里面直接是行向量
endfunction r=f(x,y) %定义函数,并计算内函数。r=sin(x.*y)+x.*y+exp(cos(y));
end
5.对于
function [ymax,ymin]=myfun
rand('seed', 1433) %生成随机的向量v
v=fix(10*rand(1,20));
y=cos(2*v)+2*sin(v);
ymax=max(y);
ymin=min(y);
6.对产生的随机矩阵A=rand(5,8),删除A中所有元素之和小于4的行,并交换第1、2列,返回处理后的A(find+数组访问)
function A=myfun
rand('seed',59)
A=rand(5,8)
idx = find(sum(A')<4)
A(idx,:)=[];
A(:,[2 1])=A(:,[1 2]);
7.输入一个整数,输出由这个整数各位数组成的行向量。(mod、fix)
function [digits]=getDigits(n)
leastDigit=mod(n,10);
digits=leastDigit;
n=fix(n/10);
while n~=0leastDigit=mod(n,10);digits=[leastDigit,digits];%用一个行向量不断往里面加n=fix(n/10);
end
end
下面是上面例题用到的基础语法:
1.求最大维度的长度:length
基本语法:length(A)
- length(A)%若A是一个向量,那么返回向量的长度;若A是一个矩阵,那么它就等价于max(size(A)),即求行数,列数中的最大值。
2.查找非零元素:find
基本语法:find(A)、find(A,n)、find(A,n,direction)、[row,col,v]=find(A,n,direction)(仍然遵循线性索引)
- find(A)%返回一个包含A中每一个非零元素的线性索引(即如果只按列排,元素的下标)的向量,~A查找零向量。同时A也可以是一个条件例如(A>5),返回值类型不变。
- find(A,n)%n用来限制前n个满足条件的数
- find(A,n,direction)%direction限制从开始还是从最后。如果倒数n个数,direction写成'last'
3.求余数:rem、mod
基本语法:rem(a,b)、mod(a,b)
差别:mod
函数生成一个为零或与除数具有相同符号的结果。rem
函数生成一个为零或与被除数具有相同符号的结果。并记得a都可以是向量,返回值也是一个向量
两者的表达式:r = a - b.*fix(a./b)、b = a - b.*floor(a./b)%fix向零取整、floor向负无穷大取整。除此之外还有ceil朝正无穷大取整和round四舍五入,round可以再添加一个输入参数用于精确四舍五入到小数点左右第几位,可以对数组使用。
4.求最大值最小值函数:max、min
基本语法:max(A)、max(A,[],2)、max(A,b)
- max(A)%如果A是向量,返回最大值,还可以添加一个输出参数输出其线性索引;如果A是一个矩阵,那么输出由A每列最大值组成的行向量,同样增加一个输出参数可以输出其每个元素在A的线性索引;max(A,[],2)是返回每行的最大值的列向量。
- max(A,b)%将A的每个元素与标量b比较大小后生成的与A同型的矩阵。
5.一些简易常用函数列举:
- log(x)%若x为-1,则结果为
- exp(x)%对于复数z=x+yi,它返回以下指数
- sqrt(x)%若x=-1,结果为
- sort(A,dim/direction)%排序,direction默认为'ascend'升序,降序需要填'descend',dim就是排序的维度,默认对列操作,2为对行排序。
6.一些简易常用生成矩阵列举:
- eyes(A)%生成广义单位矩阵
- ones(A)%所有用法同zeros几乎完全一样,生成全1矩阵,常用ones(size(x))来生成与x同型矩阵
- rand(A)%用法同上几乎完全一样,生成每个元素都是0-1区间随机数的矩阵。
基础内容大概再有两-三篇就可以结束了,之后打算就进入到各种实验板块了。