for循环的一些困惑解决(字符串)
?對于單純的遍歷一個行向量,只需用for循環(huán)從開始到結(jié)束遍歷
for i = 1 : 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? % ? ':' 代表從從1 到 10
? ? ? i
end
輸出:
i =
? ? ?1
i =
? ? ?2
修改:
如:
for i = 1 : 2 : 10
? ?? i
end
(該循環(huán)可以直接輸出奇數(shù),共有3個數(shù)字,第一個數(shù)字代表從1開始遍歷,第二個數(shù)字代表每隔幾項加一次,第三個數(shù)字表示遍歷的結(jié)束位置)
輸出:
i =
? ? ?1
i =
? ? ?3
i =
? ? ?5
i =
? ? ?7
i =
? ? ?9
對于一個已知字符串,想要輸出他的逆序字符串:如果用for循環(huán)又該如何解決?????
如果要輸出一個字符串的逆序,肯定是從后往前遍歷:
那么,我們很容易想到這么寫:
for i = length(s) : 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? %這樣顯然是錯的,因為他沒有往前走
? ?? i
end
正確的寫法:
for i = length(s) : -1 : 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? %此時輸出的i是一個下標
? ? ? i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
end ??
-----------------------------------------------------------------------------------------------------------------------------
for i = length(s) : -1 : 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %逆序輸出每一個字符
? ?? s(i);
end
-------------------------------------------------------------------------------------------------------------------------------
for i = length(s) : -1 : 1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? %將字符串s逆序存在另一個字符串中,下標從1開始
? ? ? cun(length(i) + 1 + i) = s(i);
end
?
字符串中的一些命令:
abs(s); ? ? ? ? ? ? ? ? ? ? ? ?? %返回一個向量,其值是字符串元素中的ASCII值
char(s); ? ? ? ? ? ? ? ? ? ? ? ? %轉(zhuǎn)換字符,相當于c或c++中的強制轉(zhuǎn)化
strcmp(str1, str2); ? ? ? ? ? ? ? ? %兩個字符串進行比較
stricmp(str1, str2); ? ? ? ? ? ? ? %比較時不區(qū)分大小寫
strcat(str1, str2); ? ? ? ? ? ? ? ? ? %將兩個字符串連接起來
disp(A); ? ? ? %顯示輸入的內(nèi)容
inline(); ? ? %可以形成內(nèi)聯(lián)函數(shù)
例如:表示表達式 3sin(x) + 5cos(y);
可以用inline()來表示
g = inline('3 * sin(x) + 5 * cos(y)', 'x', 'y' );
輸出:
g =
? ? ?內(nèi)聯(lián)函數(shù):
? ? ?g(x,y) = 3 * sin(x) + 5 * cos(y)
求當x = π, y = 2π時,表達式的值
g(pi, 2 * pi);
輸出:
ans =
? ? ?5
?
eval(); ? 來調(diào)用保存在文件中的信息。。。。。。。待加
總結(jié)
以上是生活随笔為你收集整理的for循环的一些困惑解决(字符串)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建立随机矩阵,及生成新矩阵
- 下一篇: 其他数据类型的一些操作