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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Arif Hoq
Arif Hoq il 24 Mar 2022
Modificato: Arif Hoq il 24 Mar 2022
check my answer. you did not specify the function input in your variable A,B,C
Joshua Lenhardt
Joshua Lenhardt il 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.

Accedi per commentare.

Risposte (3)

Arif Hoq
Arif Hoq il 24 Mar 2022
Modificato: Arif Hoq il 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 Commento
Arif Hoq
Arif Hoq il 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

Accedi per commentare.


Voss
Voss il 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 Commento
Voss
Voss il 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

Accedi per commentare.


DEBABRATA jana
DEBABRATA jana il 14 Set 2023
Modificato: DEBABRATA jana il 14 Set 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 Commento
DGM
DGM il 14 Set 2023
Modificato: DGM il 14 Set 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.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by