フィルターのクリア

String value and sequently representation

1 回表示 (過去 30 日間)
Akmyrat
Akmyrat 2014 年 5 月 27 日
コメント済み: Image Analyst 2014 年 5 月 27 日
Lets say i have string
M=['XASSANORXOOUOU']
and I want something like this
for i=1:7
Li=[M(i,i+1)]
so that it would give me like this result:
L1=XA
L2=SS
L3=AN
L4=OR
and so on....but this code
Li=[M(i,i+1)]
is not working. Could u help me please.
  3 件のコメント
Akmyrat
Akmyrat 2014 年 5 月 27 日
yes John, that is the problem for now i can not do it in proper way, i tried this for i=1:7 L=M(2*i,2*i-1) end % but this gives like that answer L=XA, L=SS, L=AN...and so on. but i want it like this L1=XA, L2=SS, L3=AN...

サインインしてコメントする。

採用された回答

Geoff Hayes
Geoff Hayes 2014 年 5 月 27 日
編集済み: Geoff Hayes 2014 年 5 月 27 日
M is a matrix with a single row, so the code cannot access anything but that first row. As soon as i is greater than 1, then M(i,i+1) will fail with an index out of bounds exception. If you just want to get the pairs, then try something like:
for i=1:2:length(M) % since we are interested in the odd indices only
str = M(i:i+1); % get the two neighbouring characters
end
If you want to print out something like you have above, then just replace the middle line with
fprintf('L%d=%s\n',floor(i/2)+1,M(i:i+1));
If you are trying to save the values at each iteration to a variable named Li then that gets a little more challenging (is it even necessary?).
  1 件のコメント
Akmyrat
Akmyrat 2014 年 5 月 27 日
thanks a lot Geoff, it works...yes it is necessary :)

サインインしてコメントする。

その他の回答 (1 件)

rifat
rifat 2014 年 5 月 27 日
編集済み: rifat 2014 年 5 月 27 日
M=['XASSANORXOOUOU'];
for i=1:length(M)/2
string=['L' num2str(i) '=M(2*(i-1)+1:2*i)']
eval(string)
end

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by