matlab的几个菜鸟级程序

来源:百度知道 编辑:UC知道 时间:2024/05/12 17:42:03
在做项目,基础薄弱。谢谢各位大虾指导,小女子把分数全部献上。
除了这几个问题,可能还有一些会补充。不过都是小问题。但是大项目不能没螺丝钉,进程也不容忽视。所以想走个小捷径做的块一点。谢谢了!

大多数应该要用到for或者if语句,因为一点都不会,所以麻烦各位了。
不过如果有什么函数命令直接可以带入,当然也好啦!

1. 编一个函数 A(M1,M2,M3....), 问题是个数不定,也许3个也许N个,从前到后一次做叉乘,得到结果

2.B(M,n),M是矩阵,n是次数,让n个M叉乘

先这么多。还要补充的。谢谢
1楼的,你的那个算出来结果不对阿。
不过话说我这个好像不是叉乘。是叉外面有个圆圈。谁知到阿。

小姑娘,你的问题问得太模糊了,不好理解。最好重新问比较好处理。
第一个:可以通过cell的方式输入不定个数的矩阵。
处理如下。
输入时,把所有输入矩阵按顺序排好存入input,注意是大括号input={M1,M2,M3,...};
然后调用函数A(input)
函数A(input)

function result=A(input)
number=size(input,2);
result=input{1,1};
for current=2:number

result=result*input{1,current};
end

注意,对于叉乘来说,每个矩阵的维度是有要求的,前后的矩阵要满足能够叉乘的要求

第二个:
这个问的很清楚,所以容易写
function result=B(M,n)

result=M;
for order=2:n

result=M*M;
end

这个同样有维度的要求,就是M必须是方阵

第三个:这个关键问题在于你要求的函数里面没有矩阵输入,如果那n个相同的矩阵用M1表示,那个特殊的矩阵用M2表示,那么结果如下:

function result=C(M1,M2,m,n)
result=1;
for order=1:m-1
result=result*M1;
end

result=result*M2;

for order=m+1:n
result=result*M1;
end

第四个:这个不好理解,a=b, 第a个和第b个特殊,那就是说还是只有一个是特殊的,那不就是第三题么,就是第m个矩阵是特殊的
如果a!=b,那么处理也类似于第三题,无非是假设a<=b,然后分成1:a-1; a; a+1:b-1; b; b+1:n
这么几段相乘起来就得出最后的结果了。
希望你能把