我想在MATLAB中构建几个矩阵。编程不是我的强项,我不能进入这个。我知道我应该用for循环嵌套,但是不能弄清楚如何。我有一个带有T值的数据y。我需要设置滞后m,然后找到Tm = T-2m + 1。矩阵Ymin和Yplus的阶数为m x Tm,但不知道如何设置它们。括号中数组中数据的位置。对不起格式。矩阵是:
y(m) y(m+1) ... y(T-m)
y(m-1) y(m) ... y(T-m-1)
.
.
.
y(1) y(2) ... y(Tm)
和
y(m+1) y(m+2) ... y(T-m+1)
y(m+2) y(m+3) ... y(T-m-2)
.
.
.
y(2m) y(2m+1) ... y(T)
答案 0 :(得分:3)
使用bsxfun
获取这两个矩阵的一种方法 -
T = numel(y) %// number of elements in y
idx1 = bsxfun(@plus,[m:-1:1]',0:Tm-1)
out1 = y(idx1)
idx2 = bsxfun(@plus,[m+1:2*m]',0:Tm-1)
out2 = y(idx2)
答案 1 :(得分:1)
希望以下%by Mark 4/28/2015
clear all;
%%%%%%%%%%%%%%%%% take an example
m=4;
T=10;
y=zeros(1,T);
for i=1:(T)
y(i)=i;
end
%%%%%%%%%%%%%%%%%%%%%% calculate Ymin
count_i=0;
for i=m:1:(T-m)
count_i=count_i+1;
count_j=0;
for j=i:(-1):(i-m+1)
count_j=count_j+1;
Ymin(count_j,count_i)=y(j);
end
end
Ymin
%%%%%%%%%%%%%%%%%%%%%% calculate Ymax
count_i=0;
for i=(m+1):1:(T-m+1)
count_i=count_i+1;
count_j=0;
for j=i:1:(i+m-1)
count_j=count_j+1;
Ymax(count_j,count_i)=y(j);
end
end
Ymax
代码可以为您提供帮助!
mkdir -p "${destination}/$1/Versions/A/Headers"
答案 2 :(得分:0)