0

我正在尝试使用 sprintf 创建一个 ulr。为了打开各种网站,我使用 sprintf 更改了部分 URL。现在以下代码将替换部分 url 的 url instread 写入 3 倍????有什么建议吗?非常感谢!!

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
4

2 回答 2

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)这可能是一个功能,因为它与其他不匹配的情况类似,如下所示

如果您将字符串转换 ( %s) 应用于整数值,MATLAB 会将对应于有效字符代码的值转换为字符。例如,'%s'转换[65 66 67]ABC.

于 2013-08-12T09:36:51.973 回答
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')

这将我重定向到一个有效的网页。

于 2013-08-12T09:39:29.200 回答