Subtracting from double complex array [message #92538] |
Sat, 09 January 2016 06:53  |
alghafisuct
Messages: 20 Registered: November 2014
|
Junior Member |
|
|
Hi all
I have a double complex array for example 500 by 500 and I want to subtract (3.5e14 + j 2.5e12) from all the values in the complex array that I have... Is there a way of doing it in IDL
Thanks
|
|
|
|
Re: Subtracting from double complex array [message #92540 is a reply to message #92539] |
Sun, 10 January 2016 02:18   |
alghafisuct
Messages: 20 Registered: November 2014
|
Junior Member |
|
|
On Saturday, January 9, 2016 at 1:02:09 PM UTC-8, Jim P wrote:
> On Saturday, January 9, 2016 at 7:53:59 AM UTC-7, algha...@gmail.com wrote:
>> Hi all
>>
>> I have a double complex array for example 500 by 500 and I want to subtract (3.5e14 + j 2.5e12) from all the values in the complex array that I have... Is there a way of doing it in IDL
>>
>> Thanks
>
> IDL> a = dcomplexarr(500, 500) ; your array, simulated with zeroes
> IDL> a -= dcomplex(3.5d14, 2.5d12) ; subtracts the scalar from all elements
> IDL> print, a[0]
> ( -3.5000000e+014, -2.5000000e+012)
>
> Jim P.
Thanks Jim I tried what you gave me and seems like not getting what I want. I have the following:
array_HV = make_array(5000, 5359, /dcomplex, /nozero)
filename_HV = ('C:\Users\asus\Desktop\Metasensing\IDL_PROJECTS\20151021115 853_12_SAR_CPLX_0_pres_8.dat')
OPENR, importUnit, filename_HV, /GET_LUN
READU, importUnit, array_HV
CLOSE, importUnit
FREE_LUN, importUnit
array_HV = dcomplexarr(5000, 5359) ; your array, simulated with zeroes
array_HV -= dcomplex(3.6435137d11, 1.6869517d12) ; subtracts the scalar from all elements
print, array_HV[0]
The value of array_HV at [2798,2263] is (3.6435137d11, 1.6869517d12) so if I subtract it should read zero when I write print, array_HV- [2798,2263] but It did not give me zero. It is giving the following:
IDL> print, ARRAY_HV -[2798,2263]
( 3.6435137e+011, 1.6869517e+012)( 3.6435137e+011, 1.6869517e+012)
IDL> print, ARRAY_HV [2798,2263]
( 3.6435137e+011, 1.6869517e+012)
Hope you got my point
Thanks
|
|
|
Re: Subtracting from double complex array [message #92546 is a reply to message #92540] |
Sun, 10 January 2016 18:21  |
Jim Pendleton
Messages: 165 Registered: November 2011
|
Senior Member |
|
|
On Sunday, January 10, 2016 at 3:19:06 AM UTC-7, algha...@gmail.com wrote:
> On Saturday, January 9, 2016 at 1:02:09 PM UTC-8, Jim P wrote:
>> On Saturday, January 9, 2016 at 7:53:59 AM UTC-7, algha...@gmail.com wrote:
>>> Hi all
>>>
>>> I have a double complex array for example 500 by 500 and I want to subtract (3.5e14 + j 2.5e12) from all the values in the complex array that I have... Is there a way of doing it in IDL
>>>
>>> Thanks
>>
>> IDL> a = dcomplexarr(500, 500) ; your array, simulated with zeroes
>> IDL> a -= dcomplex(3.5d14, 2.5d12) ; subtracts the scalar from all elements
>> IDL> print, a[0]
>> ( -3.5000000e+014, -2.5000000e+012)
>>
>> Jim P.
>
> Thanks Jim I tried what you gave me and seems like not getting what I want. I have the following:
>
> array_HV = make_array(5000, 5359, /dcomplex, /nozero)
> filename_HV = ('C:\Users\asus\Desktop\Metasensing\IDL_PROJECTS\20151021115 853_12_SAR_CPLX_0_pres_8.dat')
> OPENR, importUnit, filename_HV, /GET_LUN
> READU, importUnit, array_HV
> CLOSE, importUnit
> FREE_LUN, importUnit
>
> array_HV = dcomplexarr(5000, 5359) ; your array, simulated with zeroes
> array_HV -= dcomplex(3.6435137d11, 1.6869517d12) ; subtracts the scalar from all elements
> print, array_HV[0]
>
> The value of array_HV at [2798,2263] is (3.6435137d11, 1.6869517d12) so if I subtract it should read zero when I write print, array_HV- [2798,2263] but It did not give me zero. It is giving the following:
>
> IDL> print, ARRAY_HV -[2798,2263]
> ( 3.6435137e+011, 1.6869517e+012)( 3.6435137e+011, 1.6869517e+012)
> IDL> print, ARRAY_HV [2798,2263]
> ( 3.6435137e+011, 1.6869517e+012)
>
> Hope you got my point
>
> Thanks
Maybe this is just a misunderstanding of IDL's syntax, or perhaps a typo on your part.
The following expression subtracts the two-element vector of *integer* values 2798 and 2263 from ARRAY_HV:
IDL> print, ARRAY_HV - [2798,2263]
If your intent is to subtract an array element's value from all other elements in the array, you would write that as
IDL> result = ARRAY_HV - ARRAY_HV[2798,2263]
IDL> print, result[2798, 2263]
|
|
|