다른 변수 유형의 셀 (double & 문자열)이 있는데 셀의 숫자 요소를 반올림합니다. round
함수는 배열에만 사용할 수 있으며 셀에는 사용할 수 없으므로 cell2mat
을 사용하려고합니다. 그러나이 함수는 셀에 다른 요소 유형의 경우 사용할 수 없습니다.다른 데이터 형식의 셀 배열에서 숫자 요소 만 반올림
어떻게이 셀의 숫자 요소를 반올림 할 수 있습니까? 물론 셀 요소에 대해 루프를 수행하고 싶지 않습니다.
다른 변수 유형의 셀 (double & 문자열)이 있는데 셀의 숫자 요소를 반올림합니다. round
함수는 배열에만 사용할 수 있으며 셀에는 사용할 수 없으므로 cell2mat
을 사용하려고합니다. 그러나이 함수는 셀에 다른 요소 유형의 경우 사용할 수 없습니다.다른 데이터 형식의 셀 배열에서 숫자 요소 만 반올림
어떻게이 셀의 숫자 요소를 반올림 할 수 있습니까? 물론 셀 요소에 대해 루프를 수행하고 싶지 않습니다.
이이 cellfun
수행 할 수 있습니다 :
function testCell = q38476362
testCell = {'t','h',1.004,'s',[],'i',4.99,[],'a',[],'ce',10.8};
isnum = cellfun(@(x)~isempty(x) & isnumeric(x),testCell);
testCell(isnum) = num2cell(round([testCell{isnum}],0));
testCell =
't' 'h' [1] 's' [] 'i' [5] [] 'a' [] 'ce' [11]
휴대 배열의 경우
는 셀이 같은이 말 측면에서 랜덤입니다.string
s와
double
이있는 곳에서 루프/
cellfun
/
bruteforce 외에도 많은 작업을 수행 할 수 있습니다. 그러나 어떤 주기성이있는 경우 (예 : "문자열 뒤에 항상 두 개의
double
항목이옵니다") 반복 (명시 적 또는 암시 적)하지 않고 값을 얻을 수있는 색인 벡터를 구성 할 수 있습니다.
에이스 12 : D – GameOfThrows
Dev-iL, 감사합니다. 셀에 빈 요소 ([])가 포함되어있는 경우 대답은 훌륭하지만 작동하지 않습니다. – erez
@erez 업데이트 된 답변보기. –
str2double
숫자가 아닌 형식을 NaN으로 변환하는 기능을 활용하고 싶습니다. 아드리안에서 언급 한 바와 같이
A = {'1.999','3.1415','pie','??'}
B = round(str2double(A))
B =
2 3 NaN NaN
afaik를 반복하지 않고는이 작업을 수행 할 수 없습니다. 'cellfun'을 사용할 수는 있겠지만, 그건 변장의 고리 일뿐입니다. 루핑을 피하려면 세포가 잘 작동하지 않는 것으로 유명합니다. – Adriaan