我希望能够使用声音文件的audioinfo更新文本框。
我当前的解决方案给了我一个错误
info = audioinfo('music1.mp3');
set(handles.edit1,'String',info);
在控制台中运行info
可以获得有关声音文件的所有信息,并将其存储在MATLAB右侧的工作区中。我希望所有这些信息都能更新文本框(edit1
)。
错误:
While setting the 'String' property of 'UIControl':
String should be char, numeric or cell array datatype.
有人可以帮忙吗?
答案 0 :(得分:2)
我建议使用uitable
而不是'edit'
uicontrol
object。 'edit' uicontrol
个对象只能是一行,因此无论如何都无法使用,替代方案'listbox'
只能是一列,因此您需要sprintf
/ fprintf
使数据适合的数据。
例如:
% Generate audio file
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs
% Build dummy GUI
f = figure('ToolBar', 'none');
T = uitable('Parent', f, 'Units', 'Normalized', 'Position', [0.1 0.1 0.8 0.8]);
% Read data and add to table
info = audioinfo(filename);
T.RowName = fieldnames(info);
T.Data = struct2cell(info);
以下用户界面中的结果:
这也允许您轻松操作数据(例如复制,编辑等)
答案 1 :(得分:-4)
您需要从matLab下载mp3read和写入功能
现在使用info = mp3read('music.mp3')
返回包含原始音频的数组。
然后,您可以使用result = mat2string(info)
然后您可以在UI中设置结果......