Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

matlab fwrite error

411 views
Skip to first unread message

pietro

unread,
Jan 3, 2009, 4:19:01 PM1/3/09
to
i have created that function, but matlab gives me the following error

[B]??? Error using ==> fwrite
Invalid precision.[/b]

when i called the fwrite. How could i resolve this problem?

[code]function vibrazioni_2631 (dati,nome,area_prova,cond_prova,vel)
kx=1.4;
ky=1.4;
kz=1;
dt=dati(4,1)-dati(3,1);
l=length(dati(1,:))
f_nome=[nome, '_elab.txt'];
fid=fopen(f_nome, 'a')

prova.nome=nome;
prova.area=area_prova;
prova.cond=cond_prova;
prova.vel=vel;
%calcolo rms
prova.aw_x=sqrt(dt*trapz(dati(:,2).^2)/(dati(end,1)));
prova.aw_y=sqrt(dt*trapz(dati(:,4).^2)/(dati(end,1)));
prova.aw_z=sqrt(dt*trapz(dati(:,6).^2)/(dati(end,1)));

prova

%calcolo accelerazione risultante
prova.aw=max([kx.*prova.aw_x,ky.*prova.aw_y,kz.*prova.aw_z]);

%calcolo crest factor
prova.cf_x=max(dati(:,2))/prova.aw_x;
prova.cf_y=max(dati(:,4))/prova.aw_y;
prova.cf_z=max(dati(:,6))/prova.aw_z;

%calcolo vdv
prova.vdv_x=(dt*trapz(dati(:,2).^4))^0.25;
prova.vdv_y=(dt*trapz(dati(:,4).^4))^0.25;
prova.vdv_z=(dt*trapz(dati(:,6).^4))^0.25;
prova.vdv=max([kx.*prova.vdv_x,ky.*prova.vdv_y,kz.*prova.vdv_z]);


%calcolo tempo
prova.ore=fix((0.5/prova.aw).^2*8)
prova.min=rem((0.5/prova.aw).^2*8,60)
prova.tempo=(0.5/prova.aw).^2*8/24
if prova.tempo>=1
prova.tempo=0.99
end


fwrite (fid, '%s ; %s ; %s ; %4.0f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f ; %4.2f', ...
prova.nome, prova.cond, prova.area,prova.vel,prova.aw,prova.vdv,prova.ore,prova.min,prova.aw_x,prova.aw_y,prova.aw_z,prova.vdv_x,prova.vdv_y,prova.vdv_z,...
prova.cf_x,prova.cf_y ,prova.cf_z ,prova.tempo);

fclose (fid)
[/code]

Rune Allnor

unread,
Jan 3, 2009, 4:58:14 PM1/3/09
to
On 3 Jan, 22:19, "pietro " <bracard...@email.it> wrote:
> i have created that function, but matlab gives me the following error
>
> [B]??? Error using ==> fwrite
> Invalid precision.[/b]
>
> when i called the fwrite. How could i resolve this problem?
...

> fwrite (fid, '%s ; %s ; %s ; %4.0f ;

Try FPRINTF instead of FWRITE.

Rune

pietro

unread,
Jan 3, 2009, 5:21:02 PM1/3/09
to
Rune Allnor <all...@tele.ntnu.no> wrote in message <f78f3ad5-b36d-4038...@v39g2000pro.googlegroups.com>...

thank you, now it works. Could you explain me, why it doesn't work with fwrite?

Brian Borchers

unread,
Jan 3, 2009, 5:43:53 PM1/3/09
to
On Jan 3, 3:21 pm, "pietro " <bracard...@email.it> wrote:
>Thank you, now it works. Could you explain me, why it doesn't work with fwrite?

The fwrite function writes raw binary data- it doesn't accept a format
string like frpintf does. help fwrite will give you an explanation of
what fwrite does.

pietro

unread,
Jan 3, 2009, 6:56:01 PM1/3/09
to
Brian Borchers <borcher...@gmail.com> wrote in message <f2ae7979-312c-4be5...@w1g2000prk.googlegroups.com>...

ok thank you. :)

0 new messages