在Matlab中,我有3x4矩阵 A:
A= [67 10.9459999999963 10;
86 10.8150000000023 9;
67 10.8649999999980 10];
现在我想有一个数组B
,使得第一10
要素B
是67
,接下来的9
元素86
。基本上,第三列A
确定67's
或的每个“块” 86's
。块并不总是相等的长度。
B = [67 67 67 67 67 67 67 67 67 67 86 86 86 86 86 86 86 86 86 67 67 67 67 67 67 67 67 67 67]';
我已经尝试了以下for循环:
B=zeros(sum(A(:,3)),1);
for j=1:size(A,1)
for i=1:A(j,3)
B(i,1)=A(j,1);
end
end
但是,每次第二个for循环开始时,i
都会重置为,1
而不是继续进行下一个块。但是我不确定如何定义循环,因此可以做到这一点。
有人能帮忙吗?
谢谢
这应该做到这一点:
A= [67 10.9459999999963 10;
86 10.8150000000023 9;
67 10.8649999999980 10];
b = [];
for i = 1:size(A,1)
b = [b repmat(A(i,1), 1, A(i,3))];
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句