我的MATLAB程序正在读取一个大约7米行的文件,并且在I/O上浪费了太多时间.我知道每一行都被格式化为两个整数,但我不确切知道他们占用了多少个字符.str2num是死的慢,我应该使用什么matlab函数?
Catch:我必须一次操作一行,而不存储整个文件内存,所以没有读取整个矩阵的命令都在桌面上.
fid = fopen('file.txt');
tline = fgetl(fid);
while ischar(tline)
nums = str2num(tline);
%do stuff with nums
tline = fgetl(fid);
end
fclose(fid);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用google maps API来获取方向时间.我希望创建一个url,获取JSON响应,然后检查该行程持续时间的响应.在我创建JSON对象后,我无法导航它.对我而言,这表明我已经搞砸了获取响应或导航JSON对象.如果你能看到我从网络教程中拼凑出来的一些代码,我会很感激.
此代码旨在获取响应.它被try/catch包围,并没有触发任何错误.
String stringUrl = <URL GOES HERE>;
URL url = new URL(stringUrl);
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
String strLine = null;
while ((strLine = input.readLine()) != null)
{
response.append(strLine);
}
input.close();
}
String jsonOutput = response.toString();
Run Code Online (Sandbox Code Playgroud)
此代码旨在获取该输出并将其解析为最终字符串,持续时间,这受到此类stackoverflow答案的启发,针对类似问题.
JSONObject jsonObject = new JSONObject(jsonOutput);
JSONObject routeObject = jsonObject.getJSONObject("routes");
JSONObject legsObject = routeObject.getJSONObject("legs");
JSONObject durationObject = legsObject.getJSONObject("duration");
String duration = durationObject.getString("text");
Run Code Online (Sandbox Code Playgroud)
我正在第二个块的第二行捕获JSON异常.有人可以帮忙解决这个问题吗?或者可能建议一种更简单的方法来获取相同的数据?
编辑:感谢这里的第一个有用的答案(来自aromero),后半部分现在看起来像:
JSONObject jsonObject = new JSONObject(responseText); …Run Code Online (Sandbox Code Playgroud)