Why does an array have a different column dimension than the array used to define that array?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I enclose a m file and a small data file. A is a column array with dimension 3233 by 1. B is a column array defined using A and its dimension should stay the same. It does not. It has dimension 3232 by 1. In particular, the very last element gets lost in B. What is going on?
0 Commenti
Risposta accettata
Dyuman Joshi
il 23 Gen 2023
You have defined B directly from a logical condition. When you do so, MATLAB checks for logical true values and defines accordingly; so the resulting variable is updated till the last logical true value.
Which is the 3232nd value here -
A=load('data.mat').A;
idx=find(A==2,1,'last')
%Example
x=1:10;
%size of y is not same as size of x
y(x<7)=0
To get the desired result, you should pre-allocate B with the same size as A and then apply the condition.
B=zeros(size(A));
B(A==2)=1;
size(B)
Also, you should consider what values those B elements take where elements of A are not equalto 2.
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Whos 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!