Why does an array have a different column dimension than the array used to define that array?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Snoopy
el 23 de En. de 2023
Comentada: Stephen23
el 23 de En. de 2023
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 comentarios
Respuesta aceptada
Dyuman Joshi
el 23 de En. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Whos en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!