Matlab - 使用保存时出错无法创建“_”,因为“_____”不存在
Matlab - Error using save Cannot create '_' because '_____' does not exist
我在元胞数组中有一些数据,
data2={[50,1;49,1;26,1];...
[36,2;12,2;37,2;24,2;47.3,2];}
和另一个元胞数组中的名称,
names2={'xxx/01-ab-07c-0fD3/0';'xxx/01-ab-07s-0fD3/6';}
我想提取数据的一个子集,
data2_subset=data2{1,:}(:,1);
然后是一个临时文件名,
tempname2=char(names2(2));
使用
将子集保存到文本文件
save (tempname2, 'data2_subset', '-ASCII');
但我收到此错误消息:_
Error using save
Cannot create '6' because 'xxx/01-ab-07s-0fD3' does not exist.
为了试图理解正在发生的事情,我创建了一个名称更简单的模拟数据集:
names={'12-05';'14-03'};
data={[50,1;29,1;25,1];[35,2;22,2;16,2;38,2];[40,3;32,3;10,3;44,3;43,3];};
data_subset=data{1,:}(:,1);
tempname=char(names(2));
save (tempname, 'data_subset', '-ASCII');
在这种情况下,保存命令可以正常工作。
不幸的是,我仍然不明白第一种情况的问题所在。关于正在发生的事情以及可能的解决方案有什么建议吗?
MATLAB 将正斜杠 (/
) 解释为目录分隔符,将 6
解释为预期的文件名(您的第二个示例没有此斜杠问题)。
由于相对目录树 xxx/01-ab-07s-0fD3/
不存在,MATLAB 无法创建文件。
要解决此问题,您可以使用 mkdir()
:
预先创建目录
>> pieces = strsplit(tempname2,'/');
>> mkdir(pieces{1:2});
>> save(tempname2, 'data2_subset', '-ASCII');
或者用其他良性符号替换 /
,例如 _
:
>> tempname3= strrep(tempname2,'/','_');
>> save (tempname3, 'data2_subset', '-ASCII');
(对我有用)。
我在元胞数组中有一些数据,
data2={[50,1;49,1;26,1];...
[36,2;12,2;37,2;24,2;47.3,2];}
和另一个元胞数组中的名称,
names2={'xxx/01-ab-07c-0fD3/0';'xxx/01-ab-07s-0fD3/6';}
我想提取数据的一个子集,
data2_subset=data2{1,:}(:,1);
然后是一个临时文件名,
tempname2=char(names2(2));
使用
将子集保存到文本文件save (tempname2, 'data2_subset', '-ASCII');
但我收到此错误消息:_
Error using save
Cannot create '6' because 'xxx/01-ab-07s-0fD3' does not exist.
为了试图理解正在发生的事情,我创建了一个名称更简单的模拟数据集:
names={'12-05';'14-03'};
data={[50,1;29,1;25,1];[35,2;22,2;16,2;38,2];[40,3;32,3;10,3;44,3;43,3];};
data_subset=data{1,:}(:,1);
tempname=char(names(2));
save (tempname, 'data_subset', '-ASCII');
在这种情况下,保存命令可以正常工作。
不幸的是,我仍然不明白第一种情况的问题所在。关于正在发生的事情以及可能的解决方案有什么建议吗?
MATLAB 将正斜杠 (/
) 解释为目录分隔符,将 6
解释为预期的文件名(您的第二个示例没有此斜杠问题)。
由于相对目录树 xxx/01-ab-07s-0fD3/
不存在,MATLAB 无法创建文件。
要解决此问题,您可以使用 mkdir()
:
>> pieces = strsplit(tempname2,'/');
>> mkdir(pieces{1:2});
>> save(tempname2, 'data2_subset', '-ASCII');
或者用其他良性符号替换 /
,例如 _
:
>> tempname3= strrep(tempname2,'/','_');
>> save (tempname3, 'data2_subset', '-ASCII');
(对我有用)。