我已將垂直連接的文件從我的目錄轉換爲大小約爲60000 x 15(已驗證)的矩陣。'查找'功能工作不正常,已嘗試浮點精度分辨率
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
我使用的是以下32迭代循環和「查找」功能來定位的行號,其中最後一列是對應於環路的整數迭代的整數:
for i=1:32
v=[];
vn=[];
[v,vn]=find(abs(fix(i)-fix(total))<eps);
g=length(v)
end
我試圖通過對'i'的值使用'fix'和來自matrix'total'的值來解釋浮點精度,另外還要考慮它們的絕對差異並檢查它小於'eps'的容差浮點相對精度函數),最大公差爲0.99。
「查找」功能無法正常工作。它只適用於某些整數(儘管它應該定位所有這些(1-32)),並且對於整數,它確實發現值是不完整的。
這裏有什麼問題?如果「查找」不適合這個目的,那麼什麼是合適的選擇?
我要去這裏走出去的肢體,並說,'find'工作就好替換代碼的第一個塊,你誤會如何作品。這可能值得支持,並告訴我們你實際上想做什麼,因爲它不清楚。 – Suever
矩陣的第15列是整數值在1-32之間的唯一列,因此,查找函數應該返回帶有歸因於該特定整數的行號的向量'v'(vn是不相關的)。輸出結果顯示,對於許多不應該爲零的整數,v的長度爲零。我需要使用向量'v'來定位行號,從中我可以從矩陣'總'中的不同列中獲取相應的數據。這是否清理了事情? – romanex
您可能希望將total(:)作爲total來編寫爲60000 x 15.此外,您可以使用[cell2mat](https://www.mathworks.com/help/matlab/ref/cell2mat.html)在第一個代碼中。 –