How to prevent over-writing in my for loop?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Ismail Qeshta
il 12 Nov 2017
Commentato: Ismail Qeshta
il 12 Nov 2017
My interpolation for loop keeps over-writing the last value, even though I assigned x2=zeros(N,2).
clear; clc;
Folder = cd;
N=100;
x2 = zeros(N, 2);
for k = 1:N;
Driftt = sprintf('Drift%d.out', k);
Reactt = sprintf('React%d.out', k);
matDrift = importdata(fullfile(Folder, Driftt));
matReact = importdata(fullfile(Folder, Reactt));
x1= matDrift(:,2);
y1= -sum(matReact(:,2:11),2);
[x3, ix] = unique(x1);
y3 = y1(ix);
[y2] = [500000, 5000000, 7000000, 8000000, 900000, 13000000, 14000000];
x2 = interp1(y3, x3, y2, 'linear')
end
0 Commenti
Risposta accettata
Matt J
il 12 Nov 2017
Modificato: Matt J
il 12 Nov 2017
Your loop needs to provide an index into x2
x2(something)= interp1(y3, x3, y2, 'linear')
to tell it where to store things.
3 Commenti
Matt J
il 12 Nov 2017
Modificato: Matt J
il 12 Nov 2017
Well, if you don't provide an index, MATLAB assumes that you just want to replace the whole matrix with something else:
>> x2=zeros(4,2)
x2 =
0 0
0 0
0 0
0 0
>> x2=1
x2 =
1
Conversely, if you give an index, you will place the right hand side into some designated part of the array.
>> x2=zeros(4,2); x2(4,:)=[2,1]
x2 =
0 0
0 0
0 0
2 1
So, your job is to specify where in x2 you want the result of interp1(y3, x3, y2, 'linear') inserted.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!