私は2つのベクトルidx1
とidx2
を持っています。それらの間の値を取得したいと思います。 idx1
とidx2
は数字ではなくベクトルた場合、私は次のようにそれを行うことができます: MATLABの2つのベクトル間のコロン(:) - の値をベクトル化する
idx1=1;
idx2=5;
values=idx1:idx2
% Result
% values =
%
% 1 2 3 4 5
しかし、私の場合は
、idx1
と
idx2
は、可変長のベクトルです。たとえば、長さ= 2の場合:
idx1=[5,9];
idx2=[9 11];
間に値を直接取得するためにコロン演算子を使用できますか?これは、次のようなものです:
values = [5 6 7 8 9 9 10 11]
私はidx1(1):idx2(1)
とidx1(2):idx2(2)
を行うことができます知っている、これは、個別に各列の値を抽出しているので、他の解決策がない場合、私はこれを行うことができますfor-loopを使用することができますが、Matlabはこれをより簡単に行うことができます。
MATLABでは 'values'を使用できません。 3ベクトルで垂直連結された5ベクトル? – petrichor
はい、あなたは正しいです、申し訳ありません。私はそれを修正するつもりです。値がすべて同じ行にあるかどうかは関係ありません。インデックス間にすべての値が必要なだけです。 – Digna
MathworksのLorenによるこのトピックに関する優れたブログ記事があります:[コロン(:)の概念のベクトル化](http://blogs.mathworks.com/loren/2008/10/13/vectorizing-the-notion- of-colon) – knedlsepp