Why do I receive the error that arrays have incompatible sizes for this operation?

1 view (last 30 days)
When the code runs the error message reads:
  • Arrays have incompatible sizes for this operation
  • Error in line 5
  • D=A:(A-C)/B:C;
clear all
A=('initial value:');
B=('number of values:');
C=('final value:');
D=A:(A-C)/B:C;
E=3412.14.*D;
F=(3412.14/2544.5).*D;
G=550.*D;
table(D',E',F',G','VariableNames',{'D','E','F','G'})
  4 Comments
Arif Hoq
Arif Hoq on 24 Mar 2022
Edited: Arif Hoq on 24 Mar 2022
check my answer. you did not specify the function input in your variable A,B,C
Joshua Lenhardt
Joshua Lenhardt on 24 Mar 2022
I'm sorry I didn't see that there. Thank you so much for your help and time with this, it finally makes sense for me now.

Sign in to comment.

Answers (3)

Arif Hoq
Arif Hoq on 24 Mar 2022
Edited: Arif Hoq on 24 Mar 2022
try this:
A=input('initial value:');
B=input('number of values:');
C=input('final value:');
% A=2;
% B=10;
% C=20;
D=A:(C-A)/B:C;
E=3412.14.*D;
F=(3412.14/2544.5).*D;
G=550.*D;
table(D',E',F',G','VariableNames',{'D','E','F','G'})
  1 Comment
Arif Hoq
Arif Hoq on 24 Mar 2022
A=2;
B=10;
C=20;
D=A:(A-C)/B:C;
E=3412.14.*D;
F=(3412.14/2544.5).*D;
G=550.*D;
table(D',E',F',G','VariableNames',{'D','E','F','G'})
ans = 0×4 empty table
whenever "final value-initial value"
A=2;
B=10;
C=20;
D=A:(C-A)/B:C;
E=3412.14.*D;
F=(3412.14/2544.5).*D;
G=550.*D;
table(D',E',F',G','VariableNames',{'D','E','F','G'})
ans = 11×4 table
D E F G ____ ______ ______ _____ 2 6824.3 2.682 1100 3.8 12966 5.0957 2090 5.6 19108 7.5095 3080 7.4 25250 9.9233 4070 9.2 31392 12.337 5060 11 37534 14.751 6050 12.8 43675 17.165 7040 14.6 49817 19.578 8030 16.4 55959 21.992 9020 18.2 62101 24.406 10010 20 68243 26.82 11000

Sign in to comment.


Voss
Voss on 24 Mar 2022
I guess those first three lines are supposed to be calls to input()
A=('initial value:');
B=('number of values:');
C=('final value:');
whos()
Name Size Bytes Class Attributes A 1x14 28 char B 1x17 34 char C 1x12 24 char
D=A:(A-C)/B:C;
Arrays have incompatible sizes for this operation.
As in:
A=input('initial value:');
B=input('number of values:');
C=input('final value:');
D=A:(A-C)/B:C;
  1 Comment
Voss
Voss on 24 Mar 2022
Also, note that this:
D=A:(C-A)/B:C;
gives you one more element than was requested:
A = 0; % initial value
B = 10; % number of values
C = 1; % final value
D=A:(C-A)/B:C;
numel(D)
ans = 11
It's better to use linspace():
D = linspace(A,C,B);
numel(D)
ans = 10

Sign in to comment.


DEBABRATA jana
DEBABRATA jana on 14 Sep 2023
Edited: DEBABRATA jana on 14 Sep 2023
B=imread('LOGO.bmp');
subplot(2,2,3),imshow(B),title('Watermark Image');
Wd=im2double(B);
DCTw=dct(Wd);
subplot(2,2,4),imshow(DCTw),title('DCT of Watermark Image');
DCTwi=(DCTw/2)+(DCTi/0.001);
WI=idct(DCTwi);
Arrays have incompatible sizes for this operation.
also
Arrays have incompatible sizes for this operation.
Error in DCTandIDCTwithWatermarkImage (line 17)
DCTwi=(DCTw/2)+(DCTi/0.001);
  1 Comment
DGM
DGM on 14 Sep 2023
Edited: DGM on 14 Sep 2023
The error means what it says. The arrays are not compatible sizes. So what size are they? Nobody knows what LOGO.bmp is, so nobody knows what size DCTw is. Similarly, nobody knows what size DCTi is or where it came from. You are the only person with access to that information.
Check the sizes of your arrays. If they came from the same source, one may have been subject to some operation (e.g. padding or differencing) which has altered its size.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!