将字符串和数字一起保存在矩阵中,matlab

时间:2013-01-02 10:17:46

标签: matlab

我想在矩阵中保存带有相应索引的字符串,但是我收到错误。

这是一个小例子:

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_]

1 个答案:

答案 0 :(得分: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中,ij被定义为sqrt(-1)。给变量赋予其他名称总是一个好主意。