Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 是否将文件从一个文件夹随机移动到另一个文件夹?_Matlab_File_Random_Move_Training Data - Fatal编程技术网

Matlab 是否将文件从一个文件夹随机移动到另一个文件夹?

Matlab 是否将文件从一个文件夹随机移动到另一个文件夹?,matlab,file,random,move,training-data,Matlab,File,Random,Move,Training Data,我正在尝试移动我的文件并创建一个新文件夹以将这些文件放在那里。 我在MATLAB目录下的images文件夹中有许多.png文件。我想随机选择其中的80%,并将它们移动到另一个名为training文件夹的文件夹中,该文件夹位于我的matlab目录中。这是我不工作的代码。找不到要移动的文件:( 这里有几个问题: 与Flynn comments一样,对mkdir training的调用只需执行一次,这样您就可以将其放在循环之前 当涉及到for循环时,您可能错误地考虑了变量image\u order 调

我正在尝试移动我的文件并创建一个新文件夹以将这些文件放在那里。 我在MATLAB目录下的images文件夹中有许多.png文件。我想随机选择其中的80%,并将它们移动到另一个名为training文件夹的文件夹中,该文件夹位于我的matlab目录中。这是我不工作的代码。找不到要移动的文件:(

这里有几个问题:

  • 与Flynn comments一样,对
    mkdir training
    的调用只需执行一次,这样您就可以将其放在循环之前
  • 当涉及到for循环时,您可能错误地考虑了变量
    image\u order

    调用
    image\u order=randperm(num\u files);
    会从1:num\u文件中生成一个随机排序的索引数组,这很有用。但是,表达式
    (image\u order)*0.8
    实际上是将这些索引中的每一个乘以0.8,这样它们就不再是有效的整数索引(除了一些,比如8变成了1)

    我认为你正在尝试和想要做的是:

    mkdir('training');  
    for k = 1:num_files*0.8
       randK = image_order(k);
       file_name = all_files(randK).name;
       file_to_move = fullfile(data_add,file_name);
    
       movefile(file_to_move, 'training'); % using function style
     end
    
  • 接下来,您可能会遇到其他问题,具体取决于文件夹培训的位置和脚本的运行来源,但这应该更接近您要获取的内容,至少可以为您找到文件。

    这里有几个问题:

  • 与Flynn comments一样,对
    mkdir training
    的调用只需执行一次,这样您就可以将其放在循环之前
  • 当涉及到for循环时,您可能错误地考虑了变量
    image\u order

    调用
    image\u order=randperm(num\u files);
    会从1:num\u文件中生成一个随机排序的索引数组,这很有用。但是,表达式
    (image\u order)*0.8
    实际上是将这些索引中的每一个乘以0.8,这样它们就不再是有效的整数索引(除了一些,比如8变成了1)

    我认为你正在尝试和想要做的是:

    mkdir('training');  
    for k = 1:num_files*0.8
       randK = image_order(k);
       file_name = all_files(randK).name;
       file_to_move = fullfile(data_add,file_name);
    
       movefile(file_to_move, 'training'); % using function style
     end
    

  • 接下来,您可能会遇到其他问题,具体取决于文件夹培训的位置和脚本的运行位置,但这应该更接近您要获取的内容,至少可以为您找到文件。

    您不应该在循环中包含mkdir。file\u add用于什么?是的,我完全忘记了mkdir。我只是为g编写了它iving path to the file I want move但后来我决定使用fullfile()我也应该这样评论:你不应该在循环中使用mkdir。file_add用于什么?是的,我完全忘记了mkdir。我写它只是为了给我想移动的文件提供路径,但后来我决定使用fullfile()我也应该这样评论:SThanks很多。我尝试了这段代码,结果出现了错误“使用movefile找不到匹配的文件”。但是文件\u to \u move有地址和文件名。因此我不知道如何将这些文件复制到培训文件夹?也许您使用了我给出的路径名作为示例?我用您使用的路径变量名(
    data\u add
    ,我相信)编辑了这篇文章不,我使用了数据地址,但仍然说找不到文件!!我很抱歉,请尝试使用movefile的函数语法,否则我相信它会将
    file\u to\u move
    视为字符串
    “file\u to\u move”
    ,该字符串不存在。我相应地更新了帖子。是的,再次感谢。但movefile函数中的一件事就是second element应该在“”内。但不允许我编辑它。非常感谢。我尝试了此代码,但出现错误“使用movefile未找到匹配的文件”。但是文件\u to \u move有地址和文件名。因此我不知道如何将这些文件复制到培训文件夹?也许您使用了我给出的路径名作为示例?我用您使用的路径变量名(
    data\u add
    ,我相信)编辑了这篇文章不,我使用了数据地址,但仍然说找不到文件!!我很抱歉,请尝试使用movefile的函数语法,否则我相信它会将
    file\u to\u move
    视为字符串
    “file\u to\u move”
    ,该字符串不存在。我相应地更新了帖子。是的,再次感谢。但movefile函数中的一件事就是second element应该在“”中,但不允许我编辑它。