如何在MATLAB中仅显示Filename和FileSize

时间:2014-07-29 12:07:18

标签: matlab user-interface matlab-figure matlab-guide

当我尝试使用轴作为按钮打开图像时,显示带有源路径的文件名。

  • 文件名:C:\ Users \ Win8 \ Documents \ MATLAB \ Test \ lena.png
  • 文件大小:606.09
    enter image description here

我只想显示文件名(红色边框),文件大小为KB(蓝色边框),不带小数。

  • 文件名:lena.png
  • 文件大小:606

axes1回调代码:

function axes1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
project = guidata(gcbo);

[imgname, imgpath] = uigetfile({'*.png';}, 'Open an Image')
if imgname==0 % if it is canceled
    imgname=''; % create an empty name
    imgpath=''; % create an empty path
end
if isequal(imgname, 0)
return;
end
eval(['cd ''' imgpath ''';']);
I=imread(fullfile(imgpath, imgname));
set(project.figure1, 'CurrentAxes', project.axes1);
set(imshow(I));
imshow(I);
set(project.figure1, 'Userdata', I);
set(project.axes1, 'Userdata', I);
info = imfinfo(fullfile(imgpath, imgname));
set(project.edit1, 'String', info.Filename);
set(project.edit2, 'String', info.FileSize/1024);

任何建议怎么做? 我正在使用MATLAB R2012a。

1 个答案:

答案 0 :(得分:2)

对于第一部分:使用fileparts

[~, fn, ext] = fileparts(info.Filename); %// get filename (no path) and extension
set(project.edit1, 'String', [fn ext])

对于第二部分:使用round

set(project.edit2, 'String', round(info.FileSize/1024))

或者可以在字符串中明确指出单位(kB):

set(project.edit2, 'String', [num2str(round(info.FileSize/1024)) ' kB'])