我对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.');发布于 2017-09-26 00:48:59
注释中提到了可能的错误源:您立即覆盖变量filenames,并且可能在strrep参数中有一个额外的*。
假设您只想从filenames(i).name中删除文件扩展名并将其传递给create_query,则可以使用fileparts (并将结果存储在一个新变量中):
for i = 1:size(filenames,1)
[~, queryName, ~] = fileparts(filenames(i).name);
[insert_query, transfer_query] = create_query(queryName);
...https://stackoverflow.com/questions/46350936
复制相似问题