任务:
将数组的名称而非数组的内容,转成字符型,用于调用writexls()函数将工作区变量数组写成xls文件。
说明:
1,writexls()函数,matlab帮助:
xlswrite(filename,A)
将矩阵 A
写入 Microsoft® Excel® 电子表格工作簿 filename
中的第一张工作表,从单元格 A1
开始写入。
但是!更推荐使用writematrix()
2,writematrix(),matlab帮助:
writematrix(A,filename)
写入具有 filename
指定的名称和扩展名的文件。
writematrix
根据指定扩展名确定文件格式。扩展名必须是下列格式之一:
-
.txt
、.dat
或.csv
(适用于带分隔符的文本文件) -
.xls
、.xlsm
或.xlsx
(适用于 Excel® 电子表格文件) -
.xlsb
(适用于安装了 Windows® Excel 的系统上支持的 Excel 电子表格文件)
3,inputname(1):获取这个function函数的第一个输入参数的字符类型
解决:
参考链接[Matlab]变量名与字符串的互相转换 - 百度文库
此文代码如下:
abc=[1 2 3 4 5 6];
name = getVarName(abc)
function [str_varName] = getVarName(var)
str_varName = sprintf('%s',inputname(1));
end
此文确实有效,但在进行函数调用时会出现问题:并不能把数组名作为变量传入。
自定义写入xls函数如下:
abcd=[1 2 3 4 5];
write_xls(abcd,abcd);
function write_xls(~,xls_data)
name=sprintf('%s',inputname(1))
xlswrite(name+".xls",xls_data);
end
但是用这种方法写一个转xls函数略显麻烦。
这是写xls的原本函数:
xlswrite("name.xls",xls_data);
这是修改后:
write_xls(abcd,abcd);
用处仅仅是将输入参数改成相同,而不用在第一个参数时手打 “string”。