1

文字列とそれに対応するインデックスをマトリックスに保存したいのですが、エラーが発生します。

ここに小さな例があります:

Mat_=[];            
Val1=[10,19,22,15,30];
Val2=20
Strs_=[];
for i= 1:length(Val1)
if abs(Val1(1,i))<abs(Val2)
            Str_={'Überschritten'};  
        else
            Str_={'Unterschritten'};
end
Strs_=[Strs_;Str_];
Mat_=[Mat_;i];
end
Mat_
Strs_
FMat=[Mat_,Strs_]
4

1 に答える 1

4

文字列を操作するには、セル配列が必要です。これを行うには、セル配列を事前に割り当てて入力します。

Val1 = [10,19,22,15,30];
Val2 = 20;
FMat = cell(length(Val1), 2); % Preallocate empty cell array
for idx = 1:length(Val1)
    if abs(Val1(1,idx)) < abs(Val2)
        Str_ = 'Überschritten';  
    else
        Str_ = 'Unterschritten';
    end    
FMat(idx, :) = {idx, Str_};
end

セルFMat配列は次のようになります。

1   'Überschritten'
2   'Überschritten'
3   'Unterschritten'
4   'Überschritten'
5   'Unterschritten'

ループ変数もに変更したことに注意してiくださいidx。MATLABでは、iおよびjはとして定義されsqrt(-1)ます。変数に他の名前を付けることは常に良い考えです。

于 2013-01-02T11:11:30.363 に答える