我正在尝试创建一个脚本来解决我的问题,但我被困在一个地方。 所以我用4x1大小的矩阵导入了.txt文件(简化为一个例子,在我的例子中它可能是1209x1矩阵),它包含一些坐标X.它看起来像这样:
0
1
2
3
这是一个时期的坐标,我需要为不同数量的时段N得到一列。每个时期都相同,长度= L
因此,您可以通过此脚本手动执行此操作,例如N = 3个句点:
X=[X; X+L; X+2*L];
所以例如,如果L = 3
然后我会得到
0
1
2
3
3
4
5
6
6
7
8
9
它运作良好但是如果我需要使用多个句点来表示N = 1000或者我需要快速更改它们的数量,它效率不高。参数化这个操作的任何解决方案,所以我可以只为N设置数字并在N个时期内得到X?
谢谢和问候
答案 0 :(得分:0)
我在这台机器上没有MATLAB,所以我无法测试,但最简单的实现方式如下:
n = 1000;
L = 3;
nvalues = length(X); % Assuming X is your initial vector
newx = zeros(n*nvalues, 1); % Preallocate new array
for ii = 0:(n-1)
startidx = (nvalues*ii) + 1;
endidx = nvalues*(ii+1);
newx(startidx:endidx) = X + ii*L
end
答案 1 :(得分:0)
您可以使用results2 <- data.frame(model1 = c("A", "A", "A", "B", "B", "B"),
model2 = c("A", "B", "C", "C", "D", "E"))
apply(results2, 2, chooseBestModel)
## model1 model2
## "A" "C"
创建bsxfun
,X
,X+L
,...然后将其重塑为矢量
X+2*L
或以更简洁的形式:
>> F=bsxfun(@plus, X, (0:(N-1))*L)
F =
0 3 6
1 4 7
2 5 8
3 6 9
>> X=F(:)
X =
0
1
2
3
3
4
5
6
6
7
8
9