changing exponential value into float
    조회 수: 8 (최근 30일)
  
       이전 댓글 표시
    
I normalized 'area' data between zero and one. Then I write that values into xl sheet. But many values are exponential. I want to change that exponential values to float type. Please somebody help.
This is my code:
max_Ar=max(Ar);
min_Ar=min(Ar);
range=(max_Ar-min_Ar)+ eps(max_Ar-min_Ar);
for i=1:100
Area(i)=(Ar(i)-(min_Ar - eps(max_Ar-min_Ar)))/range;
ex = 10^(3-floor(log10(Area(i))));
Area(i)= round(Area(i) * ex) / ex;
end
xlswrite('Tomato_Yellow_Leaf_Curl_Virus.xlsx',Ar(:)) 
xlswrite('Tomato_Yellow_Leaf_Curl_Virus1.xlsx',Area(:))
댓글 수: 4
답변 (2개)
  Subhadeep Koley
    
 2020년 2월 1일
        Hi Sajitha, Try the code below.
clc;
max_Ar = max(Ar);
min_Ar = min(Ar);
range = (max_Ar - min_Ar) + eps(max_Ar - min_Ar);
for i = 1:100
    Area(i) = (Ar(i) - (min_Ar - eps(max_Ar-min_Ar))) / range;
    ex = 10^(3-floor(log10(Area(i))));
    Area(i) = round(Area(i) * ex) / ex;
    Area(i) = str2double(sprintf('%f', Area(i)));
    Ar(i) = str2double(sprintf('%f', Ar(i)));
end
xlswrite('Tomato_Yellow_Leaf_Curl_Virus.xlsx', double(Ar(:)));
xlswrite('Tomato_Yellow_Leaf_Curl_Virus1.xlsx', double(Area(:)));
댓글 수: 0
  Walter Roberson
      
      
 2020년 2월 1일
        
      편집: Walter Roberson
      
      
 2020년 2월 1일
  
      dlmwrite with a precision of '%.1074f' should handle all of the cases.
Possibly with the processing you are doing you might be able to use a considerably smaller number than 1074. 1074 is needed for eps(realmin)
댓글 수: 2
  Walter Roberson
      
      
 2020년 2월 2일
				Yes. Conversion of binary to characters is done in software, not in hardware. The more digits you convert, the more time it takes the software.
File i/o time mostly depends on the number of full blocks of data to be written; when you write more characters then it is going to take more time.
참고 항목
카테고리
				Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


