matlab编程出错

img


您好,我想从字符串中删去大写字母,但老是说索引超过数组元素数量,这是怎么回事呢

img

很想吐槽一句,你们问问题,为什么总喜欢截图,甚至拍照,我想给你调试代码还得识别文字甚至手敲一遍,就不能直接把代码打出来嘛?
好了,言归正传,你在循环的过程中,改变了字符串str的大小(因此部分字符你设置为空了),迭代的时候字符串大小是不断减少的,所以最后肯定会超过索引。最简单的解决办法就是让字符串大写字母部分变成空格,不要变成空,比如下面的代码:

clc
clear
str=input('','s');
for i=1:(length(str))
    if str(i)>='A' && str(i)<='Z'
        str(i)=' ';
    else
        str(i)=str(i);
    end
end
disp(str)

运行结果如下:

img

如果有问题欢迎继续提问,没问题希望点一下采纳,谢谢~

for i=0:(length(str))-1 看看

length要减一