我正在尝试使用sprintf创建一个ulr。为了打开各种网站,我使用sprintf更改了部分URL。现在下面的代码写了3次url instread替换部分网址????有什么建议吗?非常感谢!!
current_stock = 'AAPL';
current_url = sprintf('http://www.finviz.com/quote.ashx?t=%d&ty=c&ta=0&p=d',current_stock)
web(current_url, '-browser')
%d应该是appl的地方。结果是:
http://www.finviz.com/quote.ashx?t=65&ty=c&ta=0&p=dhttp://www.finviz.com/quote.ashx?t=65&ty=c&ta=0&p=dhttp://www.finviz.com/quote.ashx?t=80&ty=c&ta=0&p=dhttp://www.finviz.com/quote.ashx?t=76&ty=c&ta=0&p=d
答案 0 :(得分:3)
我不确定为什么你使用%d
作为明显是字符串的值?您应该使用%s
。
您看到所看到的内容的原因是,它似乎为您提供了AAPL
字符串中每个字符的格式字符串副本。
您可以看到差异仅在?t=XX
位,XX
依次为65,65,80和76,字符串中四个字母的ASCII代码:
vv
http://www.finviz.com/quote.ashx?t=65&ty=c&ta=0&p=d
http://www.finviz.com/quote.ashx?t=65&ty=c&ta=0&p=d
http://www.finviz.com/quote.ashx?t=80&ty=c&ta=0&p=d
http://www.finviz.com/quote.ashx?t=76&ty=c&ta=0&p=d
^^
这是MatLab (a)中的一个特性还是错误,我无法肯定地说,但我怀疑如果你只是使用正确的格式说明符它会自行解决。
(a)这可能是一个功能,因为它根据here执行与其他不匹配类似的智能操作:
如果将字符串转换(
%s
)应用于整数值,MATLAB会将对应于有效字符代码的值转换为字符。例如,'%s'
会将[65 66 67]
转换为ABC
。
答案 1 :(得分:0)
我会遵循这个简单的方法:
current_stock = 'AAPL';
current_url = ['http://www.finviz.com/quote.ashx?t=%d&ty=c&ta=0&p=d',current_stock];
web(current_url,'-browser')
将我重定向到有效的网页。