2013-01-02 3 views
1

행렬에 해당 색인과 함께 문자열을 저장하고 싶지만 오류가 발생합니다. 당신은 문자열과 함께 작업 할 셀 어레이를 필요로문자열과 num을 함께 매트릭스에 저장, 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_] 

답변

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 셀 어레이는 다음과 같습니다 나는 또한 idx에 루프 변수 i을 변경

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

알 수 있습니다. MATLAB에서 ijsqrt(-1)으로 정의됩니다. 변수에 다른 이름을 지정하는 것은 항상 좋은 생각입니다.

+0

@EitanT 방금 작업 중이었습니다 :) – HebeleHododo

+0

두 개의 주석 : 1.'Str_'에 할당 할 때 중괄호가 필요 없습니다. 'Fat'에 할당 할 때, 당신은 또한 할 수 있습니다 :'FMat (idx, :) = [idx, Str _];'한 줄에 :) –

+0

Thanks @EitanT. 나는 나의 대답을 업데이트했다. 중괄호가있는 셀 배열이 더 좋고 혼동을 덜 느끼기 때문에 제안을 조금 수정했습니다. – HebeleHododo

관련 문제