EDA365电子论坛网
标题:
采用MTALAB Function将一维数组分成多个一维数组
[打印本页]
作者:
ytm
时间:
2019-12-10 10:45
标题:
采用MTALAB Function将一维数组分成多个一维数组
当一维数组中元素较多时,比如是1*n的数组,将1*n的数组分成长度分别为a,b,..,x的不同一维数组输出,请问用matlab function怎么实现呢?
0 ~! k) @. Q9 m( j! \
我自己写了一个程序,但是长度只能是固定的,比如程序中的
len=[5,10,3,4],我想将len从外部输入。
我想知道从外部输入所有的长度,应该怎么修改呢?
8 ^9 t; R8 g; t; ], t' r! q3 [
5 `" r0 X2 V0 Z9 l+ t5 e
% Tn为输入一维数组,n是要输出的第n个分开后的数组
G9 G1 g, X& ^: [8 T
function Tm=monotonization(Tn,n)
+ s8 o* g5 U& F, Z& e4 X
len=[5,10,3,4];
% `& Y* B& J+ {. o
id = [0 cumsum(len)];
' h5 h/ Q/ A5 ]0 v3 m
m=n;
) V1 c/ y1 q' a* ^
Tm=Tn(id(m)+1:id(m+1));
2 r6 U0 \: p- V. e h7 {2 V& k
end
& g7 p `! s: q e7 Z/ g) \# E6 l
作者:
fawa
时间:
2019-12-10 17:52
MATLAB Function block要求输入输出的大小事先确定。一种做法是输出都是和Tn一样长,但是有一个另外的输出告诉下一个模块哪些是有效输入,像这样
" U: Q! F9 N; [0 @; B- n
0 v; {9 ]. l0 e! K v
function [Tm,Lm]=monotonization(Tn,len,n)
3 J g+ f$ \. W4 f" Q3 j; n
id = [0 cumsum(len)];
1 G1 T7 f8 f! B1 h
m=n;
& J5 T( p7 F% j% {
Tm = nan(size(Tn))
/ i, z5 U* p8 ?1 J/ f6 N k
Lm = len(m);
1 _% R0 ^6 J" p; I
Tm(1
m)=Tn(id(m)+1:id(m+1));
" h; L7 e* e, }( u/ x! A+ w8 f; s
end
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2