字符串翻转中关于遍历顺序的问题。

1 次查看(过去 30 天)
新手,正在学习MatLab中
题目是经典的反转字符串
考虑到空间分配的时间开销,就想要从大到小的创建字符串。
于是for循环倒着来代码如下:
区别仅在第四行!(为什么直接复制不能正常显示啊)
clear;
str = input('', 's');
len = length(str);
for i = len : 1
    str_r(i) = str(len - i + 1);
end
disp(str_r);
然后就出现下面一幕:(在49行是因为我程序分节了,只运行这一节)
但是改成下面正着的就没问题
clear;
str = input('', 's');
len = length(str);
for i = 1 : len
    str_r(i) = str(len - i + 1);
end
disp(str_r);
想问下这是什么问题呢?按照C语言的逻辑第一个也是行得通的啊
这个问题可能比较低级,但请不吝告知谢谢!

采纳的回答

百家乐官方网址【微8785092】
在matlab里,冒号运算符使用 +1 作为默认增量。for循环可以改为for i = len : -1 :1

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 字符和字符串 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!