names={'fyc','hy','ljg','lqf','lsl','ml','nhz','rj','syj','wl','wq','wyc','xch','xxj','yjf',
len_names=length(names);
for i=1:len_names
end
正如上面所示的一样,url调用strcat('D:\GaitDatasetA-silh\silhouettes\',names(i),' \00_1');得到的是一个cell类型的变量,此时需要对url做一些变换就可以了,使用url=url{1};就搞定了!
……………………………………………………………………
除了读取和存储各类文本、CSV和XLS文件(详见 Matlab中的数据导入和导出) 外,Matlab还提供了各类读写网络数据的函数,这里介绍读写html文件的函数和读写xml文件的函数。
Urlread: 访问本地或网络文件
函 数urlread的语法形式主要有三种:
s = urlread('url') 访问指定url并返回内容给字符串s
s = urlread('url','method','params') 向服务器传递额外参数,method可以是post或get
[s,status] = urlread(...) 返回错误代码
示例:下载网页内容并列出网页中所有图片
s=urlread('http://www.baidu.com/');
findstr(s,’gif’)
findstr 命令返回网页内容字符串s中包含gif字符的起始位置。
使用正则表达式可以返回更强大结果,如所有图片的名称,命令如下:
Picname=regexp(s,'[^/]*(gif|jpg)','match')
返 回结果:'logo.gif' 'gs.gif'
Urlread函数也可读取本地文件,使用file:///+ 文件路径名即可,如:s = urlread('file:///c:/winnt/matlab.ini')。
Urlwrite 读取url内容并写入文件
函数urlwrite读取给定url内容,并写入指定文件,语法为 urlwrite('url','filename')。例如:urlwrite('http://www.baidu.com', 'samples.html'),读取页面http://www.baidu.com的 内容,并保存至samples.html。
Xmlread:读取xml文件
语 法:DOMnode = xmlread(filename),函数返回文档对象模型DOM,而后可使用各类xml专用函数读取文档节点。例如,对于常用的新闻rss,可以使用 getElementsByTagName函数读取所有item节点,即新闻内容,而后使用getLength函数获得节点数,并循环取值。
以 下函数读取新闻项中所有节点,并生成一个结构数组:
function theStruct = DOMReader(filename)
xDoc = xmlread(filename);
allNewsItems = xDoc.getElementsByTagName('item');
for k = 0:allNewsItems.getLength-1
thisListItem = allNewsItems.item(k);
childNode = thisListItem.getFirstChild;
while ~isempty(childNode)
tag = char(childNode.getTagName);
% 排除描述项
if strcmp(tag,'description') == 0
childText = char(childNode.getFirstChild.getData);
strstrcut =strcat('iteminfo(',num2str(k+1),').',tag,'=''',childText,'''')
eval(strstrcut);
end
childNode = childNode.getNextSibling;
end % End WHILE
end % End FOR
theStruct = iteminfo;
本例使用了创建结构数组的函数struct,使用节点名称作为结构数组的字段名称,拼接字符串后使用函数 eval生成结构数组。以本站CFA专题新闻RSS为例,命令DOMReader (‘http://www.fincareer.com.cn/site/n1.xml’)将返回包含title(新闻标题),link(链接地址)和 pubDate(发布日期的)1×n结构数组,其中n为新闻条数。
Xmlwrite:生成xml文件
以 下脚本创建一个临时xml文件并打开编辑。
docNode = com.mathworks.xml.XMLUtils.createDocument...
('root_element')
docRootNode = docNode.getDocumentElement;
for i=1:20
thisElement = docNode.createElement('child_node');
thisElement.appendChild...
(docNode.createTextNode(sprintf('%i',i)));
docRootNode.appendChild(thisElement);
end
% Save the sample XML document.
xmlFileName = [tempname,'.xml'];
xmlwrite(xmlFileName,docNode);
edit(xmlFileName);