파일을 내 디렉토리에서 크기가 약 60000 x 15 (확인 됨) 인 행렬로 수직 연결했습니다.'찾기'기능이 제대로 작동하지 않습니다. 부동 소수점 정확도를 시도했습니다.
for i=1:32
v=[];
vn=[];
[v,vn]=find(abs(fix(i)-fix(total))<eps);
g=length(v)
end
:
d=dir('*.log');
n=length(d);
data=[];
for k=1:n
data{k}=importdata(d(k).name);
end
total=[];
for k=1:n
total=[total;data{n}];
end
I 최종 열 루프의 정수의 반복에 대응하는 정수이고, 행 번호를 찾을 수 "기능을 상기 다음 32 반복 루프를 사용하고 찾는 오전 나는 'i'의 값과 행렬 'total'의 값에 'fix'를 사용하여 부동 소수점 정확도를 계산하려고 시도했다. 절대 차이를 가져 와서 'eps'의 허용치보다 작게 확인했다. 부동 소수점 상대 정확도 기능), .99 허용 오차까지.
'찾기'기능이 올바르게 작동하지 않습니다. 특정 정수에서만 작동하지만 (모두 (1-32)를 찾아야 함) 정수 값의 경우 값이 불완전하다는 것을 알 수 있습니다.
무엇이 문제입니까? 이러한 목적으로 '찾기'가 부적절한 경우 적합한 대안은 무엇입니까?
내가 여기 사지에 나가서 find'가 잘 작동하고'말할거야와 코드의 첫 번째 덩어리를 대체 할 수 있습니다 당신은 그것을 어떻게 오해 공장. 그것은 분명히 있지 않기 때문에 당신이 실제로하려고하는 것을 후원하고 우리에게 말하는 것이 가치가 있습니다. – Suever
행렬의 열 15는 1-32 사이의 정수 값을 갖는 유일한 열이므로 find 함수는 해당 특정 정수에 해당하는 행 번호가있는 벡터 'v'를 반환해야합니다 (vn은 부적합). 출력 결과는 v가 0이 아니어야하는 많은 정수에서 v의 길이가 0임을 보여줍니다. 벡터 'v'를 사용하여 행 번호를 찾으십시오.이 행 번호에서 'total'행렬의 다른 열에서 해당 데이터를 가져올 수 있습니다. 그거 분명해? – romanex
'total (:)'은'total'이 60000 x 15이므로 쓸 수도 있습니다. 또한 [cell2mat] (https://www.mathworks.com/help/matlab/ref/cell2mat.html)을 사용할 수 있습니다. 첫 번째 코드에서. –