arrays with same dimensions but have different size how to fix it?

4 views (last 30 days)
I have two arrays both have same dimension 5x2 but when i perfom certain operation on both array it gives error Assignment has more
non-singleton rhs dimensions than non-singleton subscripts and also their sizes are also different. how to fix this issue kindly help me out thanking in advance.
  6 Comments
Saira
Saira on 2 Mar 2023
Edited: Saira on 2 Mar 2023
I'm using R2015b.
for i = 1: size(cache1,1)
if cache1(i,2) < 6
ind = 11 - cache1(i,2);
cache1(i,1) = max(chunk1(chunk1(:,2) == ind));
end
end
result_arr = cache1(:,1)
Voss
Voss on 2 Mar 2023
cache1 = [
0.814723686393179 0
0.905791937075619 1
0.126986816293506 2
0.913375856139019 3
0.632359246225410 4];
chunk1 = [
1.21602018873774 10
-2.22909989155828 10
0.893185966969769 9
1.02908840545717 9
-0.849841587777029 8];
for i = 1: size(cache1,1)
if cache1(i,2) < 6
ind = 11 - cache1(i,2)
cache1(i,1) = max(chunk1(chunk1(:,2) == ind));
end
end
ind = 11
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 0-by-1.
chunk1(:,2) is nowhere equal to 11, so the right-hand side is empty.

Sign in to comment.

Answers (1)

Arka
Arka on 6 Mar 2023
Hi,
In the code sample that you shared, chunk1(:,2) == ind returns a 5x1 logical array containing only zeros.
Since MATLAB uses 1-indexed arrays, chunk1(chunk1(:,2) == ind) returns a 0×1 empty double column vector, and hence you get the error.
This is happening because none of the values in the second column of chunk1 match the value of 11 - cache1(i,2).

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!