|
| matlab spørgsmål: formatering af variabel Fra : Jake |
Dato : 06-11-07 13:37 |
|
Hej,
Hvis man har et array x=[65535 16] hvordan konverteres det så til
x=[255 255 16].
Jeg vil gerne skrive array'et ned i en fil så 16-bit værdier repræsenteres
med 2 8-bit værdier.
Jeg bruger matlab 6.5 så jeg har ikke typecast-funktionen.
Tak på forhånd.
| |
Rasmus (06-11-2007)
| Kommentar Fra : Rasmus |
Dato : 06-11-07 19:15 |
|
Jeg har en Matlab 6.0, og flg. funktioner fungerer for mig. Ved ikke om
de samme fkt. er tilgængelige i 6.5.
x er dit array, og x' er det nye array
z=bitand(x(1), 65280); %Svarer til at du tager x(1) AND 0xFF00
x'(1)=bitshift(x(1), -8); %Her roteres dit maskerede tal 8 bit til højre
x'(2)=bitand(x(1), 255); %Masker de nederste 8 bit ud, dvs. x(1) AND 0xFF
x'(3)=x(2); %Går jeg ud fra. Dit eksempel er lidt kort.
x'=[x'(1), x'(2), x'(3)]
Håber det hjælper.
Mvh. Rasmus
Jake wrote:
> Hej,
>
> Hvis man har et array x=[65535 16] hvordan konverteres det så til
> x=[255 255 16].
>
> Jeg vil gerne skrive array'et ned i en fil så 16-bit værdier repræsenteres
> med 2 8-bit værdier.
>
> Jeg bruger matlab 6.5 så jeg har ikke typecast-funktionen.
>
> Tak på forhånd.
>
>
>
| |
Rasmus (06-11-2007)
| Kommentar Fra : Rasmus |
Dato : 06-11-07 19:24 |
|
Ups, fejl i linje 2:
x'(1)=bitshift(z, -8); %Her roteres dit maskerede tal 8 bit til højre
Rasmus wrote:
> Jeg har en Matlab 6.0, og flg. funktioner fungerer for mig. Ved ikke om
> de samme fkt. er tilgængelige i 6.5.
>
> x er dit array, og x' er det nye array
>
> z=bitand(x(1), 65280); %Svarer til at du tager x(1) AND 0xFF00
> x'(1)=bitshift(x(1), -8); %Her roteres dit maskerede tal 8 bit til højre
> x'(2)=bitand(x(1), 255); %Masker de nederste 8 bit ud, dvs. x(1) AND 0xFF
> x'(3)=x(2); %Går jeg ud fra. Dit eksempel er lidt kort.
>
> x'=[x'(1), x'(2), x'(3)]
>
> Håber det hjælper.
>
> Mvh. Rasmus
>
>
> Jake wrote:
>> Hej,
>>
>> Hvis man har et array x=[65535 16] hvordan konverteres det så til
>> x=[255 255 16].
>>
>> Jeg vil gerne skrive array'et ned i en fil så 16-bit værdier
>> repræsenteres
>> med 2 8-bit værdier.
>>
>> Jeg bruger matlab 6.5 så jeg har ikke typecast-funktionen.
>>
>> Tak på forhånd.
>>
>>
>>
| |
|
|