i have (y) with size of 784*1000 and i mapped this y to get gex, gin , but the result shown only 1 dimension and i want that mapping for the two dimension (784*1000),

2 Ansichten (letzte 30 Tage)
i have (y) with size of 784*1000 and i mapped this y to get gex, gin , but the result shown only 1 dimension and i want that mapping for the two dimension (784*1000),
Rmin = 1e5
Rmax = 1e6
Gmin = 1.0/Rmax
Gmax = 1.0/Rmin
Input =table2array(in)
y=w{1}
for i = 1:length(y)
if y(i)>=0
gex(i) = Gmax*y(i) +Gmin*(1-y(i))
gin(i) =Gmin
disp(y(i))
disp (gex(i))
else
gex(i) =Gmin
gin(i) = -Gmax*y(i) +Gmin*(1+y(i))
end
end

Akzeptierte Antwort

Voss
Voss am 20 Nov. 2022
Bearbeitet: Voss am 20 Nov. 2022
Initialize gex and gin to be matrices the same size as y.
Then loop over all elements of y:
gex = zeros(size(y));
gin = zeros(size(y));
for i = 1:numel(y) % numel(y), not length(y)
if y(i)>=0
gex(i) = Gmax*y(i) +Gmin*(1-y(i));
gin(i) = Gmin;
else
gex(i) = Gmin;
gin(i) = -Gmax*y(i) +Gmin*(1+y(i));
end
end
or use logical indexing instead of a loop:
gex = zeros(size(y));
gin = zeros(size(y));
idx = y >= 0;
gex(idx) = Gmax*y(idx) + Gmin*(1-y(idx));
gin(idx) = Gmin;
gex(~idx) = Gmin;
gin(~idx) = -Gmax*y(~idx) + Gmin*(1+y(~idx));
  3 Kommentare
VBBV
VBBV am 21 Nov. 2022
May be you mean the Input as below
Input * gex
instead of
input * gex % input is standard Matlab function

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Time Series finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by