[scilab-Users] Matlab to Scilab conversion

Stefan Du Rietz sdr at durietz.se
Wed Sep 2 23:20:16 CEST 2009


On 2009-09-02 19:30, Lester Anderson wrote:
--------------------
> Hello
>  
> I am fairly new to using Scilab (and Matlab) but need to convert some 
> existing files. I have attached an example which I can't get to work and 
> the image of the correct plot from Matlab.
>  
> Original Matlab file:
>  
> rho_m=3300; % in kg/m^3
> rho_infill=2700;    % in kg/m^3
> E=1e11;    % in kg/m/s^2
> v=0.25;
> g=9.81; % in m/s^2
> l1=1e3:2e3:50e3;    % in m
> l2=75e3:25e3:1000e3;    % in m
> l=[l1 l2];  % in m
> k=1./l; % in 1/m
>  
> for Te=0:10e3:100e3    % in m
>     D=E*Te^3/(12*(1-v^2));
>     phi=1./((D.*k.^4./((rho_m-rho_infill)*g))+1);
>     semilogx(k,phi)
>     hold on
>     title('\Phi _e(k) for various T_e')
>     xlabel('Wavenumber k')
>     ylabel('\Phi _e(k)')
> end
> text(1.7e-6,0.5,'T_e=100km')
> text(3.6e-5,0.5,'T_e=10km')
> text(8e-5,0.95,'T_e=0km')
>  
> Output from the conversion below:
>  
> // Display mode
> mode(0);
>  
> // Display warning for floating point exception
> ieee(1);
>  
> rho_m = 3300;
> // in kg/m^3
> rho_infill = 2700;
> // in kg/m^3
> E = 100000000000;
> // in kg/m/s^2
> v = 0.25;
> g = 9.81;
> // in m/s^2
> l1 = 1000:2000:50000;
> // in m
> l2 = 75000:25000:1000000;
> // in m
> l = [l1,l2];
> // in m
> k = 1 ./l;
> // in 1/m
>  
> for Te = 0:10000:100000
>   // in m
>   D = (E*(Te^3))/(12*(1-v^2));
>   phi = 1 ./((D .*(k .^4)) ./((rho_m-rho_infill)*g)+1);
>   // !! L.14: Matlab function semilogx not yet converted, original 
> calling sequence used.
>   semilogx(k,phi)
>   set(gca(),"auto_clear","off")
>   title("\Phi _e(k) for various T_e")
>   xlabel("Wavenumber k")
>   ylabel("\Phi _e(k)")
> end;
> // !! L.20: Matlab function text not yet converted, original calling 
> sequence used.
> text(0.0000017,0.5,"T_e=100km")
> // !! L.21: Matlab function text not yet converted, original calling 
> sequence used.
> text(0.000036,0.5,"T_e=10km")
> // !! L.22: Matlab function text not yet converted, original calling 
> sequence used.
> text(0.00008,0.95,"T_e=0km")
>  
> Hopefully someone can see what is needed to get things working. Thanks 
> in advance all.
>  
> Lester Anderson

You have to change "%" to "//" for comments!

Regards
Stefan



More information about the users mailing list