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

1 view (last 30 days)
新手,正在学习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语言的逻辑第一个也是行得通的啊
这个问题可能比较低级,但请不吝告知谢谢!

Accepted Answer

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

More Answers (0)

Categories

Find more on 字符和字符串 in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!