matlab:矩阵赋值,不要用 循环

matlab:矩阵赋值,不要用 循环
现在有一个数组A=[1 2 6 4 8 7 8]... 我要把A赋值给B,具体是这样的,B=[A A A A A A A ……A]。。。B中有很多个A,求一个MATLAB指令,或者简单点的语句,千万不要用循环啊,循环太慢了。。。。。。注意,A是一个数组,而不是单独的数字。。。
很急,,好的话,另加100分
你这个需求很奇葩。
你想想程序芹慧的三种结构无非是顺序、选择、循环。你不让用循环,就只能用
B=[A A ... A]这种方式了。
其实个猜首胡人感觉这种方式一般都需要用循环来解决,如果你感觉循环慢(说实话,我不清楚你循环慢的结论怎么得出来的?即使慢也和循环没什么关系吧!),那你可以减少循环次数,例如:
B=[];
for i=1:n
B=[B A A];
end
这里面的A个数由穗拦你根据需要来不定期。
可以颤梁巧使用repmat函数
以茄键下是MATLAB中渣大关于此方法的解释
B = repmat(A,M,N) creates a large matrix B consisting of an M-by-N tiling of copies of A. The size of B is [size(A,1)*M, size(A,2)*N]. The statement repmat(A,N) creates an N-by-N tiling.
>者团> A=[1 2 6 4 8 7 8];
>首陪橘乱漏> B=repmat(A,1,4)

B =

Columns 1 through 13

1 2 6 4 8 7 8 1 2 6 4 8 7

Columns 14 through 26

8 1 2 6 4 8 7 8 1 2 6 4 8

Columns 27 through 28

7 8
B = repmat(A,m,n) 用来将矩阵A复制m*n块,即B是由m*n块A平铺而成
← 上一篇: 下一篇: →