how to get precise conversion in matlab?
显示 更早的评论
hi
when i want to convert degrees(89.999999999999668207879992402105) into radians matlab gives 1.5707963267948966192313216916398 value as a output. but when i reverse the process it gives round off figure 90. but i need actual and accurate conversion value not the round off.*
vpa(89.999999999999668207879992402105*pi/180)
ans = 1.5707963267948966192313216916398
but when re-convert back to original form
vpa(1.5707963267948966192313216916398*180/pi)
ans = 90.0
i also change the the number of digits like vpa(1.5707963267948966192313216916398*180/pi,100) etc but observe the same results. kindly help me i will be highly thankful to you for this act of kindness
with best regards mudasir ahmed
采纳的回答
Every time you use a literal number in MATLAB that is not inside a string, MATLAB is going to evaluate the number as double precision before the Symbolic toolbox gets control. You need to quote your numbers. You should also get in the habit of sym()'ing them
vpa('89.999999999999668207879992402105*pi/180')
vpa('1.5707963267948966192313216916398*180/pi')
but better
vpa(sym('89.999999999999668207879992402105*pi/180'))
vpa(sym('1.5707963267948966192313216916398*180/pi'))
6 个评论
Mudasir Ahmed
2015-12-22
编辑:Mudasir Ahmed
2015-12-22
dear sir
Thanks for valuable information, but i have a Array of 100 by 3 values, will this format convert the whole array (variable).
vpa(sym('array*180/pi'))
Code the array as text and call sym() on each element of the text.
Note: in the above you had a problem because you attempted to take the text version of the ans as numeric input. If you had assigned the answer to a variable you would not have a problem.
PI = sym('pi');
in_val = sym('89.999999999999668207879992402105');
as_rad = vpa(in_val*PI/180);
as_deg = vpa(as_rad * 180 / PI);
Note: R2015b introduces deg2rad() and rad2deg() but I am not certain that it would handle symbolic values with sufficient precision of Pi.
Dear sir,
i have to to do like below
a=vpa([[sym(a1) sym(a2) sym (a3)];[sym(a4) sym(a5) sym (a6)];...[sym(a298) sym(a299) sym (a300)].
for i=1:100
forj=1:3
b(i,j)=a(i,j)*pi/180
end
end
Sir it seems lengthy and manual work if large array size is considered. so is there any automatic process or procedure.
No, if your a1 and a2 and so on are already extended precision then they must already be symbolic and applying sym() to them would not be needed.
If your values are not already extended precision then it does not make mathematical sense to do an extended precision calculation of radians. But in such a case you could do
a = [a1 a2 a3 ... a300];
b = sym(a) * sym('pi') / 180;
Where are those numbers coming from? What is class(angles) ?
As far as double precision numbers are concerned, 89.999999999999667479426986067257 and 89.999999999999668207879992402105 are the same number, both of them being 89.9999999999996731503415503539144992828369140625 . That is something that cannot be changed with double precision numbers. You need to use some kind of extended precision numbers if you want them to be different, and using extended precision numbers will require a different syntax to enter the numbers.
angles= [
sym('88.25292994445806042220189637777'), sym('89.999999999999667479426986067257'), sym('89.999999999999668207879992402105');
sym('86.472119235585302296157262009321'), sym('89.999999999981123270039862159233'), sym('89.999999999999993121983558088696');
sym('84.665084516953164820028709815801'), sym('89.999988086384753274282238804303'), sym('89.999999999999999806246175977474');
sym('82.83552790044595696067282049508'), sym('89.999999999999991112449117158209'), sym('89.999999999999993100744665396289');
sym('80.986484951716410032164762120977'), sym('89.999999999959332692365063960468'), sym('89.999999999999993122476505390389');
sym('79.121948083059506104642254539888'), sym('89.999999975262684086292374865148'), sym('89.999999975262721970224316791639');
sym('77.244683750911755612284108834821'), sym('89.999999986727214128999425244292'), sym(' 89.999999999999993118675432116');
sym('75.357853348492194774432573472921'), sym('89.999999996394470554515857407735'), sym('89.999999999999993122326059745969');
sym('73.464609154556051725140093954363'), sym('89.999999999999992753073655039909'), sym(' 89.99999999999999312244662902997');
sym('71.567882600107703152375030768898'), sym('89.999999999999992581194507627371'), sym('89.999999999999903122444226118167');
sym('69.670377917650110578302342213061'), sym(' 89.99999999999999253319867704809'), sym('89.999999999999993122506541238628');
sym('67.774518693860294741798881967926'), sym('89.999999999741931635361989813778'), sym(' 89.99999999999999311361444679491');
sym('65.8822150925780553458648880066'), sym('89.999999999999993098178222946334'), sym('89.999999999999993098179444490446');
sym('63.995531641271152333402009895049'), sym(' 89.99999999999998928710524083006'), sym('89.999999999999989287200958233939');
sym('62.11650712167783271029169712539'), sym('89.999999999999992778649497157995'), sym('89.999999999999993114151872373191');
sym('60.248879494097092226691703377443'), sym('89.999999714196263418663102999409'), sym('89.999999714228313385429057755702');
sym('58.403778779168425376458768895025'), sym('89.999999999137259749938314739589'), sym('89.999999999137259749982719609229');
sym('56.981178198306788453173114217814'), sym('89.762868470688394985205767662633'), sym('89.762868476395663591421156348161');
sym('55.797765504938677490457342932495'), sym('89.373318780644193165202171792606'), sym('89.373318781818103518674315233533');
sym('54.587935182089116272733342933166'), sym('88.990431406326516856547028587032'), sym('88.990431406591153148197145112555');
sym('53.354014335890068423930796964625'), sym('88.614043918721599881539781770388'), sym('88.614043920256183958551643928488');
sym('52.102828587990070160284343107814'), sym(' 88.2428950103448063709444005364'), sym('88.242895010344837842115341055113');
sym('50.847370222094078935464371138828'), sym('87.874480590803891405154343446749'), sym('87.874480590804517899382996732148');
sym('49.608305531180989583106115411603'), sym('87.505432535307217476773269948055'), sym('87.505432535865023730893742717288');
sym('48.415797409309773763494041129682'), sym('87.133249369666402388158308284657'), sym(' 87.13324953896692912915248042765');
sym('47.319006419412375441482463740122'), sym('86.762822149627226035956852057888'), sym('86.762822149627228080575948403545');
sym('46.582079859159937061510793780591'), sym('85.719451610184566072659221879479'), sym('87.244618123174325584003266671315');
sym('46.066041618599459232573510370179'), sym('82.026624770981104993564747832309'), sym('89.000000000000003122506798154241');
sym('45.386778108921029448330688915442'), sym('81.056639804856155393782241508934'), sym(' 89.00000000000000312247901974552');
sym('44.810709922770479654022899731807'), sym(' 79.85140653285072910261889475959'), sym('89.000000000000003121517090477509');
sym('44.407994718303529322012130356452'), sym('78.406341220762609832287704998145'), sym('89.000000000000003122506695222577');
sym('44.177863358331681247268470314704'), sym('76.663658074969014950975482110977'), sym('89.000000000000003122362329641815');
sym('43.959810840916627632291752292788'), sym('73.526831898059132595944316095278'), sym('89.000000000000003122504187530516');
sym('43.694419499184883392828891264002'), sym(' 71.75826883167902918068982670604'), sym('89.000000000000003121788745062828');
sym('43.251027741546380039207997137945'), sym('70.234204727031649621801943389907'), sym('89.000000000000003122474996583343');
sym('42.637418116998151402898983978727'), sym('68.912769676021656973403748785698'), sym('89.000000000000003032880353561533');
sym('41.898435136021901434977609783495'), sym('67.773923707251102112336590588202'), sym('89.000000000000003122504697427467');
sym('41.184836475454770526169624685702'), sym('66.903523494547958673973603864466'), sym('89.999999999999833536432947613648');
sym('40.862428381239072388102799260482'), sym('66.084460073179689509157465280485'), sym('89.522829700704316787172015822126');
sym('40.540636516266952240290820560618'), sym('65.126856819772530912519556002545'), sym('88.885960217714551629279716649383');
sym('40.255659784465259598431523791579'), sym('64.179840758641944635799072580719'), sym('88.207464330630301643708029281103');
sym('40.010850945561494237717302179161'), sym('63.241575921375690128896697217686'), sym('87.487400817245291516764549854452');
sym('39.808713467498020600905167414088'), sym('62.310121158268191017439073675237'), sym('86.724205099590538795832209618294');
sym('39.651235699137941154002866223805'), sym('61.387356173012999132998791694196'), sym(' 85.91804512572354531908684362598');
sym('39.538165194430280277915644799375'), sym('60.474250224993075081920867482213'), sym('85.067062469592128985115362682617');
sym('39.466960110666933148365305580884'), sym('59.573532356428610582620723516641'), sym('84.169326156839994722851898365978');
sym('39.432015845884450041682328081975'), sym('58.691141415603703186188852732795'), sym('83.224154081908098098508638307682');
sym('39.423721721040762557018620661906'), sym('57.835912725846163986993181391419'), sym('82.231710005217201980940318929372');
sym('39.427854203804045936737648421399'), sym('57.017100025090666114824479945582'), sym('81.189279997945968027347943050819');
sym('39.42505232601452888509690209578'), sym('56.249739658269332912940637300166'), sym('80.096660166863752270670416837442');
sym('39.390647447196684122821808748718'), sym('55.554432288866649394544143908114'), sym('78.956794112988051435129100678996');
sym('39.295485434138460655069960782315'), sym('54.953114909013826829509310430046'), sym('77.770798037323940758694874186351');
sym('39.106436458825812238377876015907'), sym('54.466546953908171183194461748773'), sym('76.532876400986841674072654241597');
sym('38.793346478561563885338769852014'), sym('54.120399281175709446322937865147'), sym('75.254931673637856533630653734693');
sym('38.330331127711641851815067265581'), sym('53.927323291318870022982211863696'), sym('73.937833541301955656658610212964');
sym('17.088336490954339743320153482257'), sym('49.063555853518496847132695282611'), sym('86.047629575645551833491762427327');
sym('16.138569401829393302518657353023'), sym('47.609081651809559546929063777857'), sym('85.687450126216674276932334350917');
sym('15.006475424769433438288650255401'), sym('45.977935577213604395403971235973'), sym('85.458978723833229830146633948827');
sym('13.619921345600788002490770721217'), sym('44.078709299048245947591214648017'), sym('85.426302992581532156656023919662');
sym('11.8267650623723926497981201656'), sym('41.712142445713757074070877012241'), sym('85.715080131695754408779817641065');
sym('9.2245296243075231345408544818852'), sym('38.299037256485604674692363795935'), sym('86.666411504850157482944820068921');
sym('5.1388074134133179210918029726465'), sym('30.843701804839442708201058844684'), sym('89.000000000000003122351467095414');
sym('28.959785727621613973517205409994'), sym('54.325495430170720034364047354408'), sym('64.413455707717931471957842514634');
sym('27.300263679611003321724553761333'), sym(' 53.40589763966739257758376287618'), sym('64.201206002843651134925162070302');
sym('25.62282243403643143500417851977'), sym('52.123521237961941855752478708157'), sym('64.256742505487985426401814667469');
sym('23.974934495670188034831815641503'), sym('50.610887465555046818907822300253'), sym(' 64.42902804551721983255616881651');
sym('22.393617675833419721572977100908'), sym('48.983754817517843921699882905277'), sym(' 64.58777051075157160282839204065');
sym('20.9136705221437470819555683003'), sym('47.330951777057346264087673835005'), sym('64.649303247434845792310399744472');
sym('19.552736292111277733563303438249'), sym('45.704802598671202874024285901832'), sym(' 64.57638555534845735610850884807');
sym('18.303004911231574024589890716086'), sym('44.115175486918536557716106802083'), sym(' 64.36236010002650130446682268459');
sym('17.162176457503987920893415185285'), sym('42.570027260737358172789268488225'), sym('64.017828883422816119207996253756');
sym('16.120123743171187924138480960379'), sym('41.060901322245796730887839713783'), sym('63.558787904260808428485984774223');
sym('15.166787409098382995826927992926'), sym(' 39.57207210327954701605610969234'), sym('62.999463759677363774229270520181');
sym('14.301439336879539867450684659215'), sym('38.094384784038862633711645600066'), sym('62.354253677110472521393429410139');
sym('13.526832297231141653098236378403'), sym('36.616770587520529103625710863017'), sym('61.634524238867484228443610224466');
sym('12.850501310778781306222068328247'), sym('35.126883705709719841402168873312'), sym('60.848444575878857649176841110459');
sym('12.284397912758216491110610479016'), sym(' 33.60675249292420351290535089423'), sym('59.998875787093948993659901232047');
sym('11.850657253299977011459150618238'), sym('32.043625573573381396489406033223'), sym('59.090265841925510609666078241094');
sym('11.578458542097010605365011465385'), sym('30.422986869093006618461491586559'), sym('58.126530416235207016291855738527');
sym('11.504263485735878495047308258173'), sym(' 28.71572390735581123066212518705'), sym('57.105329541189146473954034925919');
sym('11.678732472807425838154168030856'), sym('26.886189539992739528140603212764'), sym('56.027010863763760399102906686034');
sym('12.181306720144578013295213987822'), sym('24.859896939437277868477685302965'), sym('54.886481012736021475711619783746');
sym('13.184370198537854836016299301885'), sym('22.468617738031179119546537731579'), sym('53.681045085177236860613126547676');
sym('15.642414758797712348570085462682'), sym('18.748259766124868423160203703476'), sym('52.401564526560994561415411772799');
sym('16.9508665100419632846198400422'), sym('16.950866510041963793699713245751'), sym('51.740960676360972733385568307922');
sym('16.498212382502374803847658602886'), sym('16.498212382692138566414870516934'), sym('50.402561559214755262635615502243');
sym('15.919905061949010353340137349393'), sym('15.919905061949010413452495414692'), sym('48.674082816172438711434825843997');
sym('15.183925314231711540908280773759'), sym('15.183925314261638594109821471355'), sym('46.476547248247282760657883572379');
sym('13.412731496284297607231295000985'), sym('13.412731496523672719107295235403'), sym('41.252575359960835968731759787589');
sym('12.714440699371424835588987115622'), sym('12.714440699371426022738711185432'), sym('39.141116126870159748204294086147');
sym('12.186838895206284480010663039331'), sym('12.186838895238221924881752059544'), sym('37.452396542858788255661055148553');
sym('7.600148345944255809874815387914'), sym('15.556265751981246969820316657954'), sym('36.289755985020056214898092792324');
sym('0.0000000000000031922172083790895440123007852701'), sym('17.921422936799498618476457878867'), sym('34.872114308935505260139893222266');
sym('0.000000000000013161458532581005948154928445771'), sym('17.434764669812986472753895945526'), sym('33.670396354896374198562337436628');
sym('0.00000000028643072306544462460669910260623'), sym('16.913669506785211610166569111438'), sym('32.006505847327203996890387585791');
sym('0.00000000025303621218320715713595039830793'), sym('16.561564817383445960663272025325'), sym('30.002218759573927269136189010233');
sym('0.00000000049538621296507250113310323848921'), sym('16.603361740208815054040574393569'), sym('27.558765435517896448831430971234');
sym('0.00000000022796327950043512563397227058782'), sym('17.631108143238673261963545038128'), sym('24.170514514119890139717605257263');
sym('4.018646510795218826538722177555'), sym('19.438461505599588429240452317561'), sym('19.439167200283906564736128157213');
sym('0.0000000000000000031052008141318308720142949148162'), sym('19.653908916254078761677904582833'), sym('19.653908916254078763091318017406]');
thank you so much sir :)
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Conversion Between Symbolic and Numeric 的更多信息
产品
标签
尚未输入任何标签。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
