EDA365电子论坛网

标题: MATLAB运行时跳过了循环体求解决 [打印本页]

作者: qian211111    时间: 2022-11-4 11:06
标题: MATLAB运行时跳过了循环体求解决
写了一小段将十个文件夹中图片进行裁剪又放入该文件夹中的代码,运行时还没有裁剪就显示“完成”,不知道哪里出了错误,代码如下:6 z/ ]9 F: I; e* {. S$ ]: d
clc
# u1 r9 A8 D- dclear, x( w7 r7 ~3 c% G' \
close all;
6 U) u- c# v, A* g; ~* Ntitle={'01','02','03','04','05','06','07','08','09','10'};9 T, q' k6 l9 `( v, T( I
for i = 1:10
3 U; |* K& R& E4 A    file_path = 'D:\BaiduNetdiskDownload\课程竞赛\Train\cell2mat(title(i))';
( ~- D1 T$ z' F) S, p    img_path_list = dir(strcat(file_path, '*.JPG')); % 选后缀为 .jpg 的图片' A9 l" Y" c, X. `1 d1 `! r
    img_num = length(img_path_list); %获得图片数量
7 r" X. V* R3 {* D" \4 K2 ~    for j = 1:img_num
: I7 j. l* f) J# B+ z        image_name = img_path_list(j).name;0 t' Y% t  J" `' o0 G1 X
        image = imread(strcat(file_path, image_name));
, i+ @9 N- G% K& c) n        crop_image = imcrop(image, [0, 0, 1000, 1000]); % 使用 imcrop() 函数来裁剪图片,第二个参数的格式为 [XMIN YMIN WIDTH HEIGHT]5 i8 h/ t% k1 J+ d. {3 {3 K, S" `( b! W
        cut_image_name = strcat('train',num2str(90+j),'_','*.JPG');/ B/ ^- ]$ k  r$ ~5 F) {8 c; h
        imwrite(crop_image, strcat(file_path, cut_image_name)); % 保存文件4 e5 T1 N& s& k, e/ `- E6 L& I
    end
" W/ y' ~4 }- }! p; \end
2 o4 ^/ t% ~( V. vdisp('完成');
! H1 k& }. b: N) k
作者: li205212021    时间: 2022-11-4 13:11
file_path的值不对,字符量中i是不视作变量的,你的路径永远是 'D:\BaiduNetdiskDownload\课程竞赛\Train\cell2mat(title(i))'。如果希望路径在循环中也变化的话,这样. v7 O7 i) v& A  E% V
file_path = ['D:\BaiduNetdiskDownload\课程竞赛\Train\cell2nidemat',char(title(i))];
作者: qian211111    时间: 2022-11-4 13:17
li205212021 发表于 2022-11-4 13:11
$ V5 ^' P4 ]( k+ W3 L( l' o+ Sfile_path的值不对,字符量中i是不视作变量的,你的路径永远是 'D:\BaiduNetdiskDownload\课程竞赛\Train\c ...
: P, y  e+ X8 d% j, K" P; F
谢谢,但是又报错了,请问这是怎么回事呢?
( R/ m, [5 O% F0 A% W' I) y报错如下:
; u! `3 o3 t* D错误使用 char( B, E( ]. b# B7 |/ k# W
无法从 matlab.graphics.primitive.Text 转换为 char。
# G2 O: r- v. o5 a/ [) h& D' w$ k2 g: n2 t5 j: f7 a4 x! t+ A; c
出错 cut (第 6 行)
) Q) ?% X7 H+ P1 `! a    file_path = ['D:\BaiduNetdiskDownload\data\Train\cell2nidemat',char(title(i))];
% v* f/ T' f8 `) W- _
作者: li205212021    时间: 2022-11-4 13:24
我复制的时候多打了几个错字3 w5 O+ K+ N1 Y  |* d% C0 C
file_path = ['D:\BaiduNetdiskDownload\课程竞赛\Train\cell2mat',char(title(:,i))];改下就好了




欢迎光临 EDA365电子论坛网 (https://www.eda365.com/) Powered by Discuz! X3.2