将MATLAB工作空间中的值导出为CSV或XLS

时间:2015-09-18 00:10:34

标签: excel matlab csv export

我希望能够使用MATLAB从工作区中的每个名称导出值。

我有一些问题,然后在工作区中设置变量。我试过了xlswrite但是我没能成功导出文件。我不认为它只会导出价值,我希望这样做。

% Construct a questdlg with three options
choiceprepq = 'Which animal do you like?';
choiceprep = questdlg('Which animal do you like?', 'Which animal do you like?', 'Dog', 'Cat','Fish');
% Handle response
switch choiceprep
case 'Dog'
    disp([choiceprep ' Dog Selected.'])
case 'Cat'
    disp([choiceprep ' Cat Selected.'])
case 'Fish'
    disp([choiceprep ' Fish Selected.'])
end

alldata= whos('global');
filename='Test.xls';
xlswrite(filename,alldata)

有没有办法将问题和用户从问题框中选择的值导出为Excel文件?不是变量的名称choiceprep,而是其值。

在这种情况下的一个例子是: http://i.stack.imgur.com/Z4cF2.png

1 个答案:

答案 0 :(得分:0)

首先,除非您确实将choiceprepqchoiceprep声明为全局变量,否则使用whos('global')不会给您这两个。不管怎样,这里没有必要,因为你已经知道了你想要的变量。

此外,您使用questdlg错误,您需要指定默认答案,因此它应该是这样的:

% syntax :  button = questdlg('qstring','title', default)
choiceprepq = 'Which animal do you like?';
choiceprep = questdlg(choiceprepq, choiceprepq, 'Dog', 'Cat', 'Fish', 'Dog');

执行xlswrite时,实际上只会写入变量所持有的值。在您的情况下,您可以通过以下方式轻松地将问题和答案存储到xls文件中:

filename = 'Test.xls';
xlswrite(filename, {choiceprepq, choiceprep})

花括号将两个变量转换为1x2单元格数组,其值可以通过xlswrite轻松写入xls文件。

xlswrite似乎无法在Mac OS上正常运行。这是一个MATLAB文件交换提交,应该提供帮助:http://www.mathworks.com/matlabcentral/fileexchange/38591-xlwrite--generate-xls-x--files-without-excel-on-mac-linux-win