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'

请注意,我还将您的循环变量更改iidx. 在 MATLAB 中,ij定义为sqrt(-1)。给变量取其他名称总是一个好主意。

于 2013-01-02T11:11:30.363 回答