我对Matlab相对较新,我正在加载.gz文件并解压缩以将其推入SQL数据库。
它调用以某种方式建立连接的函数 - 它起作用(jd.conn等),但奇怪的部分是我得到的:
索引矩阵参考不正确
当我按下循环时。
clear;
clc;
%% Connection
run('/C:/connect/connect_to_sql');
load('/C:/connect/configuration.mat');
global configuration
filepath = '/home/C:/folder/';
homeDir = cd(filepath);
addpath(homeDir);
filenames = dir('*.gz');
//LOOP STARTS HERE
for i = 1:size(filenames,1)
filenames = strrep(filenames(i).name, '*.gz', '');
[insert_query, transfer_query] = create_query(filenames);
gunzip(filenames(i).name);
query(jd.conn, insert_query);
query(jd.conn, transfer_query);
end
cd(homeDir);
disp('Reference files loaded.');
答案 0 :(得分:0)
评论中提到了可能的错误来源:您立即覆盖变量filenames
,并且可能在*
参数中有额外的strrep
。
假设您只想从filenames(i).name
删除文件扩展名并将其传递给create_query
,您可以使用fileparts
(并将结果存储在新变量中)来执行此操作:< / p>
for i = 1:size(filenames,1)
[~, queryName, ~] = fileparts(filenames(i).name);
[insert_query, transfer_query] = create_query(queryName);
...