가정 하나 개의 요소에 의해 다른 벡터보다 긴 경우
[Seconds,Sensor1VStatic,Sensor2VPulsed,TemperatureC,RelativeHumidity] = importfile(path);
그런 다음 벡터가 하나 개의 요소에 의해 더 이상 내용에 따라, 나는 예를
Seconds(end) = [];
Sensor1VStatic(end) = [];
위해 수행됩니다 벡터가 셀 배열에있는 경우 A
:
A = {[1 2 3], [1 2 3 4], [1 2 3 4 5]};
당신은 (위의 예를 들어) 반환
sz = cellfun(@(x)size(x,2), A);
각 벡터의 크기를 얻을 수 있습니다
이제
sz = [ 3 4 5]
당신이 가장 짧은 벡터 찾을 수 있습니다 마지막으로
minLength = min(sz);
과, 모든 벡터를이 길이로 만듭니다.
B = cell2mat(cellfun(@(x)x(1:minLength), A, 'uniformoutput', false))';
가 더 우아한 방법이 될 (그리고 cellfun
정말 "암시 루프"하고있는 점에 유의) 당신 (현재 확장) 예를 들어이 적용
을 할 수있다, 당신은 아마 직접 셀 어레이에 importfile
의 출력을 할당 할 수 있습니다 - 또는 별도의 줄로 처리 할 수 있습니다.
A = {Seconds,Sensor1VStatic,Sensor2VPulsed,TemperatureC,RelativeHumidity};
그러나 모든 것이 많은 작업이됩니다. 대신 당신은 할 수 :
minLength = min(size(Seconds,1), size(Sensor1VStatic,1), size(Sensor2VPulsed,1), ...
Seconds = Seconds(1:minLength);
...
이 일부 영리함에 대한 범위이지만이 일을 더 쉽게 읽을 수 있도록하지 않습니다, 그것은 장기적으로 시간을 절약하지 않습니다 ...
짧은 코드를 제공하십시오 가지고있는 벡터의 예와 그 벡터의 비교 방법에 대해 설명합니다. 그것은 당신에게 당신의 대답을주는 것은 간단 할 것입니다. 이것은 6 개의 요소가있는 셀 배열입니까? 각 요소에는 가변 길이의 벡터가 포함되어 있습니까? – Floris