如何提取字符串示例的前4個或中間4個或後四個字母:當字符串讀取01 ED 01 F9 81 C6?從matlab中的字符串中提取前4個字母
10
A
回答
14
一個字符串被視爲一個字符向量。嘗試:
>> string = '01 ED 01 F9 81 C6';
>> string(1:5), string(6:11), string(12:17)
ans =
01 ED
ans =
01 F9
ans =
81 C6
string
在這個例子中是一個變量而不是方法。 string(1)
返回數組(或向量)中名爲string
的第一個字符。
4
如果你只想要非空白字符,你可以使用ISSPACE功能刪除空格,然後字符數組索引來訪問字符:
>> s = '01 ED 01 F9 81 C6'; >> s = s(~isspace(s)) s = 01ED01F981C6 >> s(1:4) ans = 01ED >> s(5:8) ans = 01F9 >> s(9:end) ans = 81C6
您可以擴大該處理的多條線路使用RESHAPE到該空間去除的結果變換回二維數組,然後引用該額外維度字符數組:
s = ['01 ED 01 F9 81 C6'; 'F8 CA DD 04 44 3B'] s = 01 ED 01 F9 81 C6 F8 CA DD 04 44 3B >> s = reshape(s(~isspace(s)), size(s, 1), 12) s = 01ED01F981C6 F8CADD04443B >> s(:,1:4) ans = 01ED F8CA >> s(:,5:8) ans = 01F9 DD04 >> s(:,9:end) ans = 81C6 443B
0
作爲trolle3000和B3所提到的,使用含有在括號骰子來提取字符串的子集。
要回答關於如何處理字符串的額外問題,我建議您在每個空間拆分字符串,並將其從十六進制轉換爲十進制數字。
s = '01 ED 01 F9 81 C6';
hex2dec(regexp(s, ' ', 'split'))
ans =
1
237
1
249
129
198
+0
謝謝,但我的問題是我有4000行十六進制代碼的文件我想批量拆分它們,我該怎麼做? – Dilip 2011-04-05 11:09:01
相關問題
- 1. 從matlab中的字符串中提取前4個字母,當字符串可能包含少於4個字母
- 2. 從處理中的字符串中提取一個字母
- 3. 從python中的字符串中提取單個字母
- 4. Oracle從字符串中提取字母字符
- 5. 從字母數字字符串中提取數字
- 6. 使用RegEx從字母數字字符串中提取數字
- 7. 從字符串中提取字符串
- 8. 從字符串中提取一個字
- 9. 從字符串中提取2個字
- 10. 從字符串中提取數字(4個位置)
- 11. 子字符串取第4個字符後的所有字母
- 12. 從Ruby中的一個長字符串中提取字符串
- 13. 如何從oracle中的字符串中獲取4個字符?
- 14. 從字符串中提取精確的字母
- 15. 從字符串中提取以字母開頭的單詞
- 16. 從字符串中提取前3個字
- 17. 如何獲取Python中字符串的前2個字母?
- 18. 如何獲取JQuery中字符串的前三個字母?
- 19. 從字符串中提取
- 20. 從字符串中提取
- 21. 從字符串中提取字符
- 22. 從字符串中提取字符
- 23. 獲取字符串中子字符串的第一個字母
- 24. 在Java中提取字符串的前兩個字符
- 25. 提取字符串中的前2個字符
- 26. 從一個字符串中提取兩個子字符串
- 27. 從一個字符串中提取兩個子字符串
- 28. 提取開始從字符串中特定字母在PHP
- 29. 從字符串中提取西里爾文字母
- 30. 從字符串中提取幾個子字符串的方法?
@ trolle3000和B3:感謝,但如果該文件有一堆值的 'C1 F3 F6 81 81 C5' '01 F0 41 F7 01 C6 ' '41 ED C1 F7 01 C6' 然後我如何處理它? – Dilip 2011-04-05 09:16:47
@Dilip:見上面我編輯的答案,它描述瞭如何處理多行。 – 2011-04-05 17:03:28