고급 검색에서이 질문에 대한 답변을 찾으려고했지만 찾을 수 없습니다. 나는 그것을 놓친 것일 수도있다. 어떤 경우에는 사과한다.셀 1의 요소를 셀 2의 길이와 일치하도록 복제
간단한 질문이지만 문제를 해결하는 데 어려움이 있습니다. 각 셀에 double 배열이 포함 된 셀 배열이 있습니다. 우선 배열 길이가 가장 긴 셀을 알아야합니다. 이것이 알려지면 다른 셀의 배열 요소를 복제하여 가장 긴 셀의 길이와 일치시켜야합니다. 예를 들면,
:
RESP = I는 선험적 몰라
{[1 3 2 6 4] [4 2~5]} 여부 RESP {1} 또는 RESP {2 }는 더 큽니다.
내가 원하는 출력은 새로운 셀 배열 resp_new = {[1 3 2 6 4] [4 2 5 4 5]}입니다. 즉, resp {2}에 resp {1}의 길이를 일치시키기 위해 자체 요소 (임의로)를 추가하는 것입니다.
지금까지 내가 요약 할 수 있습니다 무엇을 다음과 같이
Responses = {[1 3 2 6 4] [4 2 5]};
% I could have something like this for finding the longest array of doubles in my cell array:
val=cellfun(@(x) numel(x),Responses);
longest=Responses(val==max(val));
% or something like this, returning only the lengths.
tmp = cellfun(@length,Responses);
내가 가진 문제를, 나는 일치하도록 짧은 배열에 자신의 요소를 복제 진행하는 방법을 많이 알고하지 않습니다 두 번째 길이.
도움이 될 것입니다. 감사합니다.
마크
우수함, 슈퍼 빠른 아주 대단히 감사합니다. 게다가 그것은 내가 필요한 것입니다. Marc –
너무 빠름 ... 죄송합니다. 아직 수정이 필요합니다. 먼저 내 matlab 버전은 오래되었고 randperm (n, k)를 지원하지 않지만 randperm (n) 만 지원합니다 ... 또한 N <= numel (x) 인 경우에만 작동합니다. 내 경우에 이것은 대부분의 경우 사실이 아닐 것입니다. 어떤 생각을 고칠 수 있을까요? 시간 내 주셔서 감사합니다! –
네가 맞다.'N> numel (x)'이면 작동하지 않을 것이다. Matlab에'랜디 '가 있습니까? –