我想在矩阵中保存带有相应索引的字符串,但是我收到错误。
这是一个小例子:
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_]
答案 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中,i
和j
被定义为sqrt(-1)
。给变量赋予其他名称总是一个好主意。