error with sprintf add operation between 2 terms resulting in string
古いコメントを表示
I used sprintf Mt1a to receive a value which someone not experienced with matlab would understand the value ,there appears to be a conflict in " Mt1a+Mt2a " which gives me multiple values ,i tried using str2double to fix my result but it returns NaN ,how can i fix the result for b ?
b=sprintf('%.0f\n',a./str2double(Mt1a+Mt2a)) % ==>how i attempted to use str2double
Mt2a=66539;
Fa=88050;
d2p=37;
p=6;
rb=0.08;
tga2p=p/(pi*d2p);
x=(tga2p+rb)/(1-(tga2p*rb));
Mt1a=sprintf('%.0f\n',Fa*(d2p/2)*x)
a=Fa*(d2p/2)*tga2p;
b=a./(Mt1a+Mt2a)
2 件のコメント
Mt1a=sprintf('%.0f\n',Fa*(d2p/2)*x) % <- why are you converting this to character?
Mt1a+Mt2a % <- did you look at the output when you "add" two character vectors?
Mixing character vectors into your numeric operations is hindering you, not helping you. Get rid of them.
Opariuc Andrei
2021 年 3 月 25 日
編集済み: Opariuc Andrei
2021 年 3 月 25 日
採用された回答
その他の回答 (1 件)
Do you want to concatenate a number and a piece of text together?
a = '1234'; % a is a char vector
b = 5;
c = [a, num2str(b)]
as = "1234"; % as is a scalar string
b = 5;
cs = as + b % automatically converts 5 to "5" then appends it to as
Or do you want to add them?
d = a + b % add 5 to the ASCII values of the characters '1', '2', '3', and '4'
d2 = double('6789')
f = str2double(a)+b % add 5 to the number represented by a
f2 = double(as)+b % double on a string array converts it to the number it represents
カテゴリ
ヘルプ センター および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
