Why does an array have a different column dimension than the array used to define that array?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Dyuman Joshi
2023-1-23
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!