save() seems to be saving objects that should be destroyed, causing errors when the resulting .mat file is loaded
Example code:
txs = txsite("AntennaHeight",1.5, …
"Latitude", 38.9899587, "Longitude", -76.9353889, …
"TransmitterPower", 10);
txs = txsite("AntennaHeight", 1.5, …
"Latitude", 38.9860195, "Longitude", -76.9412203);
rays = raytrace(txs, rxs, pm, "type", "power"); % rays is Na x Ns cell array
if ~isempty(rays{1}) % only ever 1 tx/1 rx
rayPower = 0;
% phasor sum of rec’d power
for rayPath = 1:numel(rays{1})
pWatts = 10^(-rays{1}(rayPath).PathLoss/10)*10;
rayPower = rayPower + pWatts*(cos(rays{1}(rayPath).PhaseShift) + 1i*sin(rays{1}(rayPath).PhaseShift));
end
% convert to RSS in dBm and resultant signal phase offset
RSS = 10*log10(abs(rayPower)/.001); % dBm
phaseOffset = angle(rayPower) ; % rads
% collate data
data = [samplePoints(step, 1), samplePoints(step, 2), RSS, phaseOffset];
end
close all force % this is an attempt to fix this issue
save("data.mat","data")
The above code works as expected however, running:
load("data.mat")
Will result in the following warnings being spammed in the console:
> In <FUNCTION> (line 25)
Warning: Unable to load C++ object. Saving (serializing) C++ objects into a MAT-file is not supported.
> In <FUNCTION> (line 25)
Warning: Cannot load an object of class ‘proplistener’:
No matching constructor signature found.
> In <FUNCTION> (line 25)
Warning: During load:
An invalid default object has been detected while loading a heterogeneous array of class event.proplistener. An empty array of
class event.proplistener will be returned.
> In <FUNCTION> (line 25)
Warning: While loading an object of class ‘siteviewer’:
Unrecognized field name "Name".
I thought foriclby closing the siteviewer would work (or at least get rid of the last error), but it has not seemed to have an effect. What command should I run to fix this behavior?
Tested on 2023b, 2024b and the 2025 prerelease across two computers (one Win10, one Ubuntu22) which both had similar behaviors, although the Windows mahcine produced far fewer warnings.Example code:
txs = txsite("AntennaHeight",1.5, …
"Latitude", 38.9899587, "Longitude", -76.9353889, …
"TransmitterPower", 10);
txs = txsite("AntennaHeight", 1.5, …
"Latitude", 38.9860195, "Longitude", -76.9412203);
rays = raytrace(txs, rxs, pm, "type", "power"); % rays is Na x Ns cell array
if ~isempty(rays{1}) % only ever 1 tx/1 rx
rayPower = 0;
% phasor sum of rec’d power
for rayPath = 1:numel(rays{1})
pWatts = 10^(-rays{1}(rayPath).PathLoss/10)*10;
rayPower = rayPower + pWatts*(cos(rays{1}(rayPath).PhaseShift) + 1i*sin(rays{1}(rayPath).PhaseShift));
end
% convert to RSS in dBm and resultant signal phase offset
RSS = 10*log10(abs(rayPower)/.001); % dBm
phaseOffset = angle(rayPower) ; % rads
% collate data
data = [samplePoints(step, 1), samplePoints(step, 2), RSS, phaseOffset];
end
close all force % this is an attempt to fix this issue
save("data.mat","data")
The above code works as expected however, running:
load("data.mat")
Will result in the following warnings being spammed in the console:
> In <FUNCTION> (line 25)
Warning: Unable to load C++ object. Saving (serializing) C++ objects into a MAT-file is not supported.
> In <FUNCTION> (line 25)
Warning: Cannot load an object of class ‘proplistener’:
No matching constructor signature found.
> In <FUNCTION> (line 25)
Warning: During load:
An invalid default object has been detected while loading a heterogeneous array of class event.proplistener. An empty array of
class event.proplistener will be returned.
> In <FUNCTION> (line 25)
Warning: While loading an object of class ‘siteviewer’:
Unrecognized field name "Name".
I thought foriclby closing the siteviewer would work (or at least get rid of the last error), but it has not seemed to have an effect. What command should I run to fix this behavior?
Tested on 2023b, 2024b and the 2025 prerelease across two computers (one Win10, one Ubuntu22) which both had similar behaviors, although the Windows mahcine produced far fewer warnings. Example code:
txs = txsite("AntennaHeight",1.5, …
"Latitude", 38.9899587, "Longitude", -76.9353889, …
"TransmitterPower", 10);
txs = txsite("AntennaHeight", 1.5, …
"Latitude", 38.9860195, "Longitude", -76.9412203);
rays = raytrace(txs, rxs, pm, "type", "power"); % rays is Na x Ns cell array
if ~isempty(rays{1}) % only ever 1 tx/1 rx
rayPower = 0;
% phasor sum of rec’d power
for rayPath = 1:numel(rays{1})
pWatts = 10^(-rays{1}(rayPath).PathLoss/10)*10;
rayPower = rayPower + pWatts*(cos(rays{1}(rayPath).PhaseShift) + 1i*sin(rays{1}(rayPath).PhaseShift));
end
% convert to RSS in dBm and resultant signal phase offset
RSS = 10*log10(abs(rayPower)/.001); % dBm
phaseOffset = angle(rayPower) ; % rads
% collate data
data = [samplePoints(step, 1), samplePoints(step, 2), RSS, phaseOffset];
end
close all force % this is an attempt to fix this issue
save("data.mat","data")
The above code works as expected however, running:
load("data.mat")
Will result in the following warnings being spammed in the console:
> In <FUNCTION> (line 25)
Warning: Unable to load C++ object. Saving (serializing) C++ objects into a MAT-file is not supported.
> In <FUNCTION> (line 25)
Warning: Cannot load an object of class ‘proplistener’:
No matching constructor signature found.
> In <FUNCTION> (line 25)
Warning: During load:
An invalid default object has been detected while loading a heterogeneous array of class event.proplistener. An empty array of
class event.proplistener will be returned.
> In <FUNCTION> (line 25)
Warning: While loading an object of class ‘siteviewer’:
Unrecognized field name "Name".
I thought foriclby closing the siteviewer would work (or at least get rid of the last error), but it has not seemed to have an effect. What command should I run to fix this behavior?
Tested on 2023b, 2024b and the 2025 prerelease across two computers (one Win10, one Ubuntu22) which both had similar behaviors, although the Windows mahcine produced far fewer warnings. rf propagation, raytracing MATLAB Answers — New Questions