i need to code speed ..anyone can help me? Getting rid of the loop would be a good start

2 Ansichten (letzte 30 Tage)
v=[1 0 0 1];
d=[0.3 0 0 0.4]
d = 1×4
0.3000 0 0 0.4000
n="lp";
count=1;
gg=find(v)
gg = 1×2
1 4
clear b
g={'Cycle n.',count}
g = 1×2 cell array
{'Cycle n.'} {[1]}
j=1; %
j = 1
for h=1:numel(gg)
b{j,h}={[g,gg(h),d(gg(h))]};
end
  6 Kommentare
pipor
pipor am 4 Sep. 2023
Bearbeitet: pipor am 4 Sep. 2023
because I'm working on a laptop and on a lot of data it happened that I got the error about the memory..hence thinking about not making three-dimensional matrices
however I am modifying the code..maybe I make it clearer
Bruno Luong
Bruno Luong am 4 Sep. 2023
Bearbeitet: Bruno Luong am 4 Sep. 2023
But you have very bad start. This data organization is awful. We warn you, with such data you'll have speed, memory, and coding problems later.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 4 Sep. 2023
clear
v=[1 0 0 1];
d=[0.3 0 0 0.4];
count=1;
gg=find(v);
g={'Cycle n.',count};
j=1;
clear b
for h=1:numel(gg)
b{j,h}={[g,gg(h),d(gg(h))]};
end
% you want horrible code to store horrible data, here we go
bb = num2cell(num2cell([ repmat(g,[numel(gg) 1]) num2cell([ gg' d(gg)' ])], 2)');
isequal(bb,b)
ans = logical
1
  1 Kommentar
pipor
pipor am 4 Sep. 2023
you want horrible code to store horrible data, here we go :D
thank but i write :"however I am modifying the code..maybe I make it clearer"
however I accept your work

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by