答案 0 :(得分:3)
使用CREATECLASSFROMWSDL从货币转换网络服务构建本地课程。然后,您可以使用Web服务的操作使用类方法进行转换。 http://www.webservicex.net/CurrencyConvertor.asmx?WSDL提供一种货币转换网络服务(有许多)。以下是其使用示例:
>> converter = createClassFromWsdl('http://www.webservicex.net/CurrencyConvertor.asmx?WSDL'); Retrieving document at 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL' >> converter = CurrencyConvertor endpoint: 'http://www.webservicex.net/CurrencyConvertor.asmx' wsdl: 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL' >> ConversionRate(converter, 'CAD', 'EUR') ans = 0.7059 >> ConversionRate(converter, 'USD', 'CAD') ans = 0.953
请注意,ConversionRate返回一个char数组,即如果要使用汇率进行计算,仍需要使用str2double转换结果。
http://www.webservicex.net/ws/wsdetails.aspx?wsid=10可以找到货币缩写列表。
答案 1 :(得分:0)
这是一个老问题,但我想我会更新答案。我在MATLAB(exchangerate.m)中使用openexchangerates.org API制作了这种货币转换函数,该API更好地支持并且还包括历史数据。这里描述了它是如何工作的(它非常简单):
此函数返回从openexchangerates.org获得的汇率 使用他们的API。要正常工作,必须连接到 互联网。默认app_id来自免费帐户 openexchangerates.org,每月限制1000个API请求。对于 更灵活,注册您自己的免费或付费帐户并更换 app_id值和您自己的ID号。
输入:
1) base :表示基础货币的字符串,设置为具有 值1.如果一个空字符串''提供,默认' USD'是 用过的。请参阅下面的有效货币缩写列表。
2) curr :a 表示货币缩写的字符串或单元格数组 与基础货币比较。如果全部'或者''作为输入提供, 然后返回所有可用货币。查看有效列表 以下货币缩写。
3)日期:包含的可选字符串 汇率所需的日期(历史数据可能不是 永远可用)。输入应采用' YYYY-MM-DD'的形式。 要获取最新的汇率数据,请使用日期 ='最新'或'',这是默认值。 1999年及以后的历史数据
输出:
1)费率:一个数字或向量,表示所需货币(货币),当前货币和基础货币之间的汇率。
2)货币:相应货币的单元格数组 费率缩写。
3) rate_struct :具有字段名称的结构 等于货币缩写和相关值 率。此输出结合了费率和货币 便利性。
示例:
1)获取比特币和美元之间的最新汇率(注:所有国家/地区缩写都列在m文件中)
[rates,currencies,rates_struct] = exchangerate('USD','BTC');
>> rates = 1.614e-3
>> currencies = 'BTC'
>> rates_struct =
BTC: 1.614e-3
2)获取所有可用货币的最新汇率
[rates,currencies,rates_struct] = exchangerate();
3)使用美国获得比特币,印度卢比和欧元的汇率 美元作为2013年6月5日的基础货币
[rates,currencies,rates_struct] = exchangerate('USD',{'BTC','INR','EUR'},'2013-06-05');
>> rates = [8.246e-3; 5.672e1; 7.642e-1]
>> currencies = {'BTC';'INR';'EUR'}
>> rates_struct =
BTC: 8.246e-3
INR: 5.672e1
EUR: 7.642e-1