Rotate Individual Letters in a String

Hello! I wonder if there is a way to have the word SINE rotated 90% counter-clockwise and each of the letters 90% clockwise so that the letters stand normal on oneanother like:
E N I S
Thanks!

 採用された回答

Jan
Jan 2012 年 1 月 24 日

2 投票

Does this help:
S = 'SINE';
C = cell(1, numel(S));
for i = 1:numel(S)
C{i} = S(i);
end
% >> C = {'E', 'N', 'I', 'S'}
text(0.5, 0.5, C);
? I'm still not sure, what you want to achieve.

1 件のコメント

Dima
Dima 2012 年 1 月 24 日
Brilliant!!!! this one worked! thanks so much!!))) can you please explain to me how this code works?
My aim is to place vertical text markers on MULTIPLE points in a chart so I used a code like this:
text(Num(7:end2,1)-1,Num(7:end2,77),'S1')
now I just replaced it to work in the for-end way:
for j=7:end2
text(j,Num(j,76),C,'FontSize',2,'Color','W','VerticalAlignment','middle','HorizontalAlignment','center','Rotation',0,'BackgroundColor',[1,0.4,0.6]);
end
and it works superb!!! I now just need to generate separate word strong for each point from
S = 'SINE';
C = cell(1, numel(S));
for i = 1:numel(S)
C{i} = S(i);
end

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

その他の回答 (3 件)

bym
bym 2012 年 1 月 23 日

1 投票

t = 'sine'
flipud(t')
ans =
e
n
i
s

2 件のコメント

Dima
Dima 2012 年 1 月 23 日
thanks...but when I try to text the oputput of flipud(t') it gives the same error:
??? Error using ==> text
Each string specified must have a corresponding set of coordinates
bym
bym 2012 年 1 月 24 日
what are your x y arguments passed to text()?

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

Dima
Dima 2012 年 1 月 23 日

0 投票

I found a way to create the vertical string :
t1 = 'S'; t2 = 'I'; t3 = 'N'; t4 = 'E';
S1 = char(t1, t2, t3);
But when I try to text this string I get the following error:
??? Error using ==> text
Each string specified must have a corresponding set of coordinates
I wonder what is the reason for this error?
Thanks!

4 件のコメント

Walter Roberson
Walter Roberson 2012 年 1 月 23 日
Your S1 assignment is the same as
S1 = 'SIN' .';
(No E because you did not include t4 in your char() call)
"help text" is more clear on the reason you are getting the error:
"If 'string' is an array the same number of rows as the
length of X and Y, TEXT marks each point with the corresponding row of the 'string' array."
Your array did not have the same number of rows as the length of x and y as you only passed one x and y each probably.
You will have to position the characters individually; text() does not have a mechanism to automatically position the characters in the manner you would like.
Dima
Dima 2012 年 1 月 23 日
sorry I meant:
S1 = strvcat(t1, t2, t3);
Walter Roberson
Walter Roberson 2012 年 1 月 23 日
char() with multiple single-character arguments turns out to do vertical cat anyhow.
Dima
Dima 2012 年 1 月 24 日
you think it is impossible to rotate the text in this way with no function whatsoever?

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

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

タグ

質問済み:

2012 年 1 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by