2017-10-23 1 views
1

셀 배열에 저장된 문자열 내부의 숫자 값을 숫자 배열로 변환하고 싶습니다. 이처럼셀 배열을 MATLAB의 숫자 값으로 변환하는 방법

:

IDcell=cell(10,1); 
IDcell(:,1)={'A123'}; 
IDnum(1:size(IDcell,1),1)=str2num(IDcell{:, 1}(1,2:4)); 

마지막 부분은 문제입니다. 가능한 것은 다음과 같습니다 :

IDnum(1,1)=str2num(IDcell{1, 1}(1,2:4)); 

그러나 전체 배열을 한 번에.

고마워, smaica

당신은 루프가 필요합니다

답변

1

다른 답변이 적용됩니다. Matlabbit은 비교적 새로운 버전의 Matlab을 실행하는 경우 작동합니다. Hielke의 루프 또는 cellfun의 사용은 내가 보통 이런 식으로 할 것입니다. 그러나 Matlab에서 무언가를 해결할 수있는 여러 가지 방법이 항상 있기 때문에 순수하게 대안이 있습니다.

>> IDchar = char(IDcell); 
>> nums= str2num(IDchar(:,2:4)) 

nums= 

    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
+0

고마워, 그거 너무! – aciams

0

: 16B부터

n = size(IDcell,1); 
IDnum = zeros(n, 1); 
for i in 1:n 
    IDnum(i,1) = str2num(IDcell{i, 1}(1, 2:4)); 
end 

당신은 또한 흥미있을 것이 cellfun

2

이다가 새 텍스트 기능과 문자열을 이 작업을 쉽게 수행 할 수있는 데이터 유형

>> IDcell=cell(10,1); 
>> IDcell(:,1)={'A123'}; 

>> IDcell = string(IDcell); 
>> nums = extractAfter(IDcell,'A'); 
>> nums = double(nums) 

nums = 

    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
    123 
+0

감사합니다. – aciams

관련 문제